`

用字节数截取字符串

阅读更多

昨天去参加中科软的笔试,编程题有一道是关于字符串的,用字节数来截取字符串,如果出现中文被截断了,应该丢去中文的那个字节。如:String a = "中aaa国ccc";截取6个字节的字符串,即:中aaa+"国"的前一部分。设计一个函数,把截到的中文的那部分去掉。

 

当时,不会做,自己乱写一通哈。回来后,查找资料,发现可以利用java的编码规则解决。就是,Unicode编码啦!

 

 

java代码:

 

	private static String cutStringByBytes(String s,int length) throws UnsupportedEncodingException{
		 byte[] bytes = s.getBytes("unicode");
	        int n = 0; // 当前的字节数
	        int i = 2; // 要截取的字节数,bytes数字的前面两位是标志位
	        while(n < length)
	        {
                if (bytes[i] != 0)   
                {   
                	n++;
                }
	            i++;
	        }
	        // 如果i为奇数
	        if (i % 2 == 1)
	        {
	           i = i - 1;
	        }

	        return new String(bytes, 0, i, "unicode");
	}
 

 

分享到:
评论

相关推荐

    C# 按照字节长度截取字符串

    在C#编程中,有时我们需要根据字节长度来截取字符串,这可能是因为要处理不同编码格式的数据,或者为了适应特定的传输限制。本篇将详细介绍如何在C#中按照字节长度截取字符串,并结合正则表达式进行操作。 首先,...

    根据字节数截取字符串

    因此,如果我们想要根据字节数截取字符串,我们不能简单地用`substring()`,而是需要先计算字符串的字节数,然后根据这个字节数来定位截取的位置。 下面是一种可能的实现方式: 1. 使用`getBytes()`方法转换字符串...

    字符串按照指定的字节数来截取

    在Python中,可以使用内置的`[start:end]`切片操作来截取字符串。如果要考虑字节,我们需要使用`encode()`方法将字符串转化为字节串,因为Python的切片默认是基于字符的。例如: ```python s = "你好,世界" byte_s...

    C#(.net)中按字节数截取字符串最后出现乱码问题的解决

    最近需要用到按字节数截取字符串。在网上找了很多方法。 Encoding.Default.GetString采用的Default Encoding.UTF8.GetBytes采用的是utf-8编码。这样当然是乱码。尤其出现中文时候。 对这类数据处理当然要用统一的...

    asp.net c# String类添加按字节截取字符串的扩展方法

    有了`bSubstring`扩展方法后,我们可以在任何`string`类型的实例上调用它,以实现按字节截取字符串的功能。例如: ```csharp string source = "abca1b2ôc3"; string subStr = source.bSubstring(6); // substr的值...

    实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,

    实现一个按字节来截取字符串的方法,功能类似于string类的substring方法,String类是按字符截取 的,例如"中国abc".substring(1,3),将返回“国a”。这里 要求按字节截取,一个英文字符当一个字节,一个中文字符当两...

    JAVA如何按字节截取字符串

    JAVA按照字节截取字符串是Java编程语言中的一项重要技术,通过本文,我们将详细介绍如何使用Java语言按照字节截取字符串。 首先,我们需要了解什么是字节截取。在计算机科学中,字节是信息技术中使用的基本单位,...

    按字节长度截取字符串(支持截取带HTML代码样式的字符串)

    首先,理解为什么需要按照字节长度而不是字符长度截取字符串。在处理非ASCII字符(如中文、日文等)时,一个字符可能占用多个字节。如果单纯按字符长度截取,可能会导致截取到半字符,从而破坏字符串的读取。因此,...

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    在循环中,我们使用 `substring` 方法来截取字符串,并将结果输出。 main 方法 在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 ...

    字符串截取(按字节)

    本文将深入探讨一种按字节截取字符串的方法,并通过分析一个具体的Java代码示例来解释其实现原理。 #### 核心概念:Unicode与字节 在讨论字符串按字节截取之前,我们首先需要理解几个基础概念。现代计算机系统中,...

    关于java按字节截取带有汉字的字符串的解法

    这就意味着当我们按照字节长度截取字符串时,可能会将一个完整的汉字分割成两部分,从而导致乱码。 Java中的`String`类提供了多种截取字符串的方法,如`substring()`、`subSequence()`等,但它们都是基于字符(char...

    按byte截取字符串

    在某些场景下,我们可能需要按照特定的字节数来截取字符串,比如在网络传输、数据解析或编码转换时。本篇文章将详细探讨“按byte截取字符串”这一技术点,并通过两个Java文件——SliceByByteTest.java和SliceByByte....

    asp.net截取字符串方法

    ### ASP.NET 截取字符串方法详解 在ASP.NET开发中,有时我们需要对字符串进行截取操作,特别是当涉及到多字节字符(如中文)时,简单的字符串截取可能会导致乱码问题。本文将详细介绍一种使用字节精确计算的ASP.NET...

    TIA博途-字符转换为字符串以及截取字符串有效字符的具体方法示例.docx

    在自动化和工业控制领域,TIA博途( Totally Integrated Automation...以上就是在TIA博途中,字符转换为字符串以及截取字符串有效字符的具体方法。理解并熟练运用这些技术,能帮助我们在处理通信数据时更加高效和准确。

    delphi 实现截取字符串中中文+英文混合截取

    然而,截取字符串时,如果不注意,可能会因为字节对齐的问题导致字符被错误地分割。例如,如果一个中文字符被截断在两个字节之间,那么在显示时就会出现乱码。 要实现安全的混合字符串截取,我们可以使用Delphi内置...

    Go语言按字节截取字符串的方法

    本文实例讲述了Go语言按字节截取字符串的方法。分享给大家供大家参考。具体实现方法如下: 代码如下:// 按字节截取字符串 utf-8不乱码 func SubstrByByte(str string, length int) string {  bs := []byte(str)[:...

    JAVA 按照字节截取字符串

    一般截取字符串是按照字符截取的,现在这个代码是按照字节截取字符

    Java精确截取字符串.doc

    这个`SplitString`类的`splitIt`方法会根据给定的字节数截取字符串,确保不会截断汉字。当输入的字节数大于1时,检查最后一个字节是否为汉字的第二个字节;如果输入的字节数为1,需要检查是否为汉字的首个字节。这样...

    Java 按照字节来截取字符串的代码(不会出现半个汉字)

    本文将详细解析提供的Java代码,了解如何实现按字节截取字符串,确保不出现半个汉字。 首先,给出的代码定义了一个名为`StringTool`的工具类,其中包含一个静态方法`getSubString`,该方法接受一个字符串`str`和一...

Global site tag (gtag.js) - Google Analytics