`
Xiaor
  • 浏览: 54390 次
  • 性别: 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无误后,可以将其保存到全局库文件中,以便在...

    java 一个截取字符串的函数

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

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

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

    按字节长度截取字符串(支持截取带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中,有多种方法可以实现字符串截取,下面...

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

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

    PHP中如何截取中文字符串

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

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

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

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

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

    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 提供十分...

    TIA博途-截取有效字符串FB全局库文件-V17版本-GF-String-Slice.zip

    FB(Function Block)是PLC编程中的一个概念,它是一种结构化编程元素,类似于函数,但可以具有输入、输出和背景数据块。在这个库文件中,"GF-String-Slice"很可能是一个专门用于处理字符串的FB,用于从一个字符串中...

    截取中英文字符串函数

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

    JavaScript截取中文字符串

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

Global site tag (gtag.js) - Google Analytics