`
heidian
  • 浏览: 100391 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类

获取字符串字节长度,截取字节长度

 
阅读更多
关键字: 字符串长度 
 /*
  * * 计算字符串的字节长度(字母数字计1,汉字及标点计2) *
  */
 public static int byteLength(String string) {
  int count = 0;
  for (int i = 0; i < string.length(); i++) {
   if (Integer.toHexString(string.charAt(i)).length() == 4) {
    count += 2;
   } else {
    count++;
   }
  }
  return count;
 }
}




/**  
 * @author cn  
 * @param s 要截取的字符串  
 * @param length 要截取字符串的长度->是字节一个汉字2个字节  
 * return 返回length长度的字符串(含汉字)  
*/  
   public static String bSubstring(String s, int length) throws Exception   
   {   
  
       byte[] bytes = s.getBytes("Unicode");   
       int n = 0; // 表示当前的字节数   
       int i = 2; // 要截取的字节数,从第3个字节开始   
       for (; i < bytes.length && n < length; i++){   
           // 奇数位置,如3、5、7等,为UCS2编码中两个字节的第二个字节   
           if (i % 2 == 1){   
               n++; // 在UCS2第二个字节时n加1   
           }   
           else{   
               // 当UCS2编码的第一个字节不等于0时,该UCS2字符为汉字,一个汉字算两个字节   
               if (bytes[i] != 0){   
                   n++;   
               }   
           }   
              
       }   
       // 如果i为奇数时,处理成偶数   
       /*if (i % 2 == 1){  
           // 该UCS2字符是汉字时,去掉这个截一半的汉字  
           if (bytes[i - 1] != 0)  
               i = i - 1;  
           // 该UCS2字符是字母或数字,则保留该字符  
           else  
               i = i + 1;  
       }*/  
       //将截一半的汉字要保留   
       if (i % 2 == 1){   
        i = i + 1;   
       }   
       return new String(bytes, 0, i, "Unicode");   
   }  

 

分享到:
评论

相关推荐

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

    在C#中,我们可以使用`System.Text.Encoding`类来获取字符串的字节表示。例如,如果字符串是UTF-8编码,可以使用`Encoding.UTF8.GetBytes()`方法: ```csharp string str = "你好,世界"; byte[] bytes = Encoding....

    C#字符串截取固定长度的方法

    本文将详细介绍如何使用C#实现字符串的固定长度截取,并深入探讨背后的原理和技术细节。 #### 方法一:使用Substring方法 最直接的方式是使用`Substring`方法来截取指定长度的字符串。这种方法适用于纯英文或单...

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

    注意,由于字符可能由多个字节组成(如UTF-8编码中的多字节字符),因此截取字节时可能会截断字符。为了确保完整性,通常需要以字符边界进行截取,这可能需要借助于`codecs`库的`decode()`和`iterdecode()`等方法。 ...

    超实用c#按字节截取长度(原创)

    在实际开发中,经常会遇到需要按照字节长度截取字符串的需求,特别是在网络传输或存储限制的场景下。然而,简单的使用`Substring`方法可能无法满足需求,因为该方法是基于字符计数而非字节计数。对于全英文字符串...

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

    这个函数`SafeSubstring`接收字符串S、起始字节位置StartByte和截取的字节数LenBytes,返回一个从指定字节位置开始,长度为LenBytes字节的新字符串。注意,这个函数假设输入的都是有效的字节位置,没有进行边界检查...

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

    // 获取字符串的字节数组,使用UTF-8编码 byte[] bytes = str.getBytes(StandardCharsets.UTF_8); if (byteLength &gt; bytes.length) { byteLength = bytes.length; } // 创建一个新的字节数组,只包含前...

    根据字节数截取字符串

    首先,字符串截取的基本需求是获取字符串的一部分,通常基于特定的起始和结束位置。在Java中,`String`类提供了多种截取方法,如`substring()`,但它默认是基于字符而非字节进行截取的。当涉及到字节时,我们需要...

    获取中文字符串长度的函数

    `AscB`和`MidB`函数用于获取字符串中的字节,`And`操作符用于检查字节的最高位。如果连续的两个字节满足条件,说明它们构成一个中文字符,计数器加1。 在实际应用中,`CLen`函数对于处理包含中文字符的文本非常有用...

    JAVA如何按字节截取字符串

    对于每个字符,我们使用getBytes()方法来获取其对应的字节长度,并将其累加到长度变量中。当长度变量小于或等于0时,我们便将当前字符添加到StringBuffer对象中。 在循环中,我们使用了if语句来判断当前字符的字节...

    JS判断字符串字节数并截取长度的方法

    本文详细介绍了如何利用JavaScript来判断字符串的字节数,并根据字节长度进行字符串的截取操作。这包括了判断字符串中的字节数和字符数、限制输入长度、以及如何在JavaScript中动态地处理HTML页面元素的值。接下来,...

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

    在TIA博途中,如果接收到的是以字节形式传输的ASCII码值,我们需要将其转换为对应的字符,进而组成字符串。例如,'A'的ASCII码值是65,'B'是66,以此类推。通过SCL(Structured Control Language,结构化控制语言)...

    C#字符串截取

    此方法用于获取指定长度的字符串,并特别考虑了中文字符的情况,因为中文字符通常占用两个字节的空间。 #### 参数说明: - `stringToSub`:需要截取的原始字符串。 - `length`:需要截取的长度(考虑到中文字符占两...

    截取如下字符串“java程序教程”的前5个字节,字符串应该为“java程”,截取前6个字符,字符串也应该为“java程”,程序实现之.

    特别地,对于可能只截取到半个汉字的情况,jieQu方法会自动增加截取字节的长度,直到获取完整的字符为止。 最后,jieQu方法返回截取后的字符串,并在main方法中通过调用jieQu方法,传入特定的字符串和长度值,输出...

    asp.net截取字符串方法

    1. **获取字符串的字节数组**:使用`System.Text.Encoding.Unicode.GetBytes()`方法将原始字符串转换为字节数组。 2. **字节数组遍历**:遍历字节数组,根据Unicode编码规则确定每个字符所占的字节数。 3. **计算...

    php字符串截取中文截取2,单字节截取模式

    然后,获取原始字符串的字节长度`$str_len`。 接下来的条件判断确保了起始位置和目标长度的合理性,避免了超出字符串实际长度的访问。如果起始位置加上目标长度超过了字符串长度,那么将目标长度设置为字符串剩余的...

    ASP截取固定长度字符串

    ### ASP截取固定长度字符串知识点解析 在ASP(Active Server Pages)编程中,处理文本数据是常见的需求之一。尤其是在新闻发布系统、文章摘要生成等场景下,经常需要将一段较长的文字内容截取为指定长度的字符串,...

    PHP 计算字符串长度

    PHP提供了内置的`strlen()`函数,用于获取字符串的长度,即字符的数量。下面我们将深入探讨这个函数以及与字符串长度计算相关的知识点。 ### strlen()函数 `strlen()`是PHP的核心函数之一,它返回给定字符串的长度...

    JS版获取字符串真实长度和取固定长度的字符串函数

    为了解决这个问题,我们可以编写自定义函数来准确地获取字符串的真实长度,并进行截取。 首先,让我们详细了解一下`getStrActualLen`函数。这个函数的目的是得到字符串的实际长度,即考虑了双字节字符的长度。它...

    高效中英文字符串截取方法

    这里通过`Encoding.GetEncoding`获取GB2312编码对象,并将输入字符串转换为字节数组`byteArr`。这样做的目的是便于后续操作中对每个字节进行检查。 ##### 字节长度与字符长度的关系 接下来的循环用于计算实际可以...

Global site tag (gtag.js) - Google Analytics