`
Xiaor
  • 浏览: 54530 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按照字节数截取的字符串

 
阅读更多
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按照字节数截取的字符串,代码如下所示:(转载)
String subString(String str,int len){  
         if(str == null && "".equals(str)){  
             return null;  
         }  
         //将字符串中的char数组转换成指定编码方式的byte数组的函数  
         byte[] strBytes = null;  
         try {  
             strBytes = str.getBytes("GBK");
         } catch (UnsupportedEncodingException e) {  
             e.printStackTrace();  
         }  
         //得到字符串的长度,判断截取字符串的长度是否在判断的范围内,否则返回原串  
         int strLen = strBytes.length;  
         if(len >= strLen || len < 1){  
             return str;  
         }  
         int count = 0;  
         for(int i=0; i<len; i++){  
             //将每个字节数组转换为整型数,因为后面根据值的正负来判断是否为汉字  
             int value = strBytes[i];  
             //如果是汉字(负),则统计截取字符串中的汉字所占字节数  
             if(value < 0){     
                 count++;  
             }  
         }  
         //依据判断给定的字符串是否含有汉字,利用String类的substring()方法来截取不同的长度  
           
        //根据所统计的字节数,判断截取到字符是否为半个汉字,奇数为半个汉字  
         if(count % 2 !=0){  
             //如果在截取长度为1时,则将该汉字取出,  
             //其他情况则不截取这里的截取长度则按字符长度截取(截取字节长度数-截取汉字字节数/2-截取到的半个汉字的字节数)  
             len = (len == 1)?len:len-count/2-1;  
         }else{  
             //截取字符长度为字节长度-汉字所占字节长度/2(汉字占两个字节)  
             len = len-(count/2);  
         }  
             return str.substring(0,len);  
     }  

注意:获取字符串的bytes,bytes数组中汉字的byte值为负数,这是判断汉字的一个依据

0
0
分享到:
评论

相关推荐

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

    在 `main` 方法中,我们创建了一个 `SplitString` 对象,并调用其 `SplitIt` 方法来截取字符串。 总结 本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该...

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

    了解这些方法后,我们就可以灵活地根据需求截取字符串中的特定字节数部分了。但要注意,字节截取可能会涉及到字符编码问题,因此在实际操作时要特别留意编码格式,避免出现乱码或者截取不完整的情况。

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

    在TIA博途中,创建一个FB,定义输入和输出参数,如输入的字符数组和输出的字符串。在FB的实现部分编写上述逻辑,然后在OB1或其他需要的地方调用这个FB。 在测试和验证FB无误后,可以将其保存到全局库文件中,以便在...

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

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

    java 一个截取字符串的函数

    本题中,我们需要编写一个函数,该函数能够根据指定的字节数截取字符串,并确保不会出现汉字被截半的情况。这是一个涉及字符编码和边界条件处理的问题。 首先,我们来理解题目中的要求: 1. 函数接收两个参数,一个...

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

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

    按byte截取字符串

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

    ORACLE字符串函数

    6. 获取字符串字节数函数:`octet_length(string)` 该函数返回字符串中的字节数。例如,`octet_length('jose')`将返回`4`。 7. 字符串查找函数:`position(substring in string)` 该函数返回字符串中指定子串的...

    Java精确截取字符串.doc

    面试中可能会遇到类似的问题,要求编写一个函数来截取字符串,确保汉字不被截半。以下是一个简单的示例实现: ```java public class SplitString { private String str; private int byteNum; public ...

    php通用截取字符串.zip

    "php通用截取字符串"这个主题主要涉及如何在PHP中对字符串进行截取,以便获取我们感兴趣的特定部分。这通常用于显示预览、处理用户输入或者从长文本中提取关键信息。在PHP中,有多种方法可以实现字符串截取,下面...

    impala中substr()截取中文字符串乱码的问题

    这个类应该包含一个方法,接收字符串、起始位置和长度作为参数,返回截取后的字符串。在处理中文字符时,我们需要确保按照字符而非字节进行截取。 2. **编译Java代码**:将Java源代码编译成.class文件。确保添加了...

    JAVA按字节截取字符串(适用于Unicode)

    7. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉...

    PHP中如何截取中文字符串

    总结,处理中文字符串截取时,理解字符编码和字符串处理函数的特性至关重要。PHP的mbstring扩展提供了强大且安全的方法来处理多字节字符,确保了中文字符串截取的准确性。在编写代码时,要时刻关注字符串的编码类型...

    C语言中常用的字符串处理函数

    这是一个非标准的函数,它从`src`所指向的位置开始,将数据复制到`dest`,直到遇到第一个等于`c`的字节或复制了`count`个字节为止,然后返回最后一个不等于`c`的字节的下一个位置的指针。如果没有找到`c`,则返回`...

    ASP截取固定长度字符串

    因此,在截取字符串时需要注意字符的字节数量,以避免截取到半个汉字。 #### 二、自定义函数StrByteLeft()详解 为了更好地解决中文字符串截取问题,可以自定义一个函数`StrByteLeft()`来实现更精确的截取。 1. **...

    db2字符串函数大全

    `SUBSTR` 函数用于从指定位置开始截取字符串的一部分。例如: - `SELECT SUBSTR('12345', 1, 2) FROM SYSIBM.SYSDUMMY1;` 返回 `'12'`。 - `SELECT LEFT('aaaaabbb', 2) FROM SYSIBM.SYSDUMMY1;` 返回 `'aa'`,与 `...

    java常用字符串函数集锦

    Java 中常用的字符串函数集锦 Java 中字符串是连串的字符,但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java 将字符串作为 String 类型对象来处理。将字符串作为内置的对象处理允许 Java 提供十分...

    截取中英文字符串函数

    可以截取中英文字符串,也可以含有字符,里面有好几个方法 有按字符个数截取 有按字节数来截取不会存在乱码

    JavaScript截取中文字符串

    本文将详细介绍一个专门用于处理中文字符串截取的JavaScript函数,该函数能够根据字符的实际编码长度来精确控制截取的长度。 #### 二、关键概念解析 ##### 2.1 字符串截取 字符串截取是指从一个较长的字符串中...

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

    根据给定文件的信息,本文将深入探讨如何在C#中实现一种高效的按字节截取字符串的方法,尤其针对包含单字节与双字节混合字符的情况。这种方法特别适用于处理中文等双字节字符与英文等单字节字符混合的情况。 ### 一...

Global site tag (gtag.js) - Google Analytics