java拆分字符串求字节长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java拆分字符串求字节长度相关的知识,希望对你有一定的参考价值。

要求这样:提供一个方法,接受一个字符串和一个分割该字符串字节的int长度方法中执行字符串分割后的字符串和字节长度,要求:比如字符串“123好我”,如果输入的是分割长度是5则输出“123好”,如果输入的风长度是4,因为好是中文,不允许输出半个中文,则应输出为“123”,输入的长度是3的话也应该是输出“123”,,请问如何实现?

首先定义一个长度变量int leng=0;定义个临时变量temp用了存储你分隔的字符串, 按你字符串长度进行循环,一个一个字符取出来,然后看他是英文字符还是汉字,如果英文字符 leng ++如果是中文leng=leng+2,然后判断leng当前的长度和你要得分隔长度,temp = temp+ 这个字符,然后返回temp 参考技术A 读第一句话没憋死我~~
public static void main(String[] args)
String str1 = "123好我";
System.out.println(str1.substring(0,4));
System.out.println(str1.substring(0,3));
System.out.println(str1.substring(0,2));

运行下结果就出来了~本回答被提问者采纳

java 按字节获取字符串长度

String str ="做·账、收·款、充·账、报·账" 怎么按字节获取他的字符串长度,特别注意的是全角字符· 我用的网上的一个方法,怎么计算str的字节长度是26 ,实际上是30。下面的代码是网上找的一个例子,貌似对于· 这个字符不对呀 public static int getWordCount(String s) int length = 0; for(int i = 0; i < s.length(); i++) int ascii = Character.codePointAt(s, i); if(ascii >= 0 && ascii <=255) length++; else length += 2; return length;

由于Java是基于Unicode编码的,因此,一个汉字的长度为1,而不是2。但有时需要以字节单位获得字符串的长度。例如,“123abc长城”按字节长度计算是10,而按Unicode计算长度是8。为了获得10,需要从头扫描根据字符的Ascii来获得具体的长度。如果是标准的字符,Ascii的范围是0至255,
如果是汉字或其他全角字符,Ascii会大于255。
参考技术A 话说编码和实际字节长度有关系么...
java一个字符char占2个字节的么,15个字符就是30呗

以上是关于java拆分字符串求字节长度的主要内容,如果未能解决你的问题,请参考以下文章

Java编程,求字符串的长度

java 按字节截取字符串问题

求一个字符串的字节长度

41.@求一个字符串的字节长度

字节数,字符串长度,字符个数的区别?

c++如何获取字节BYTE的长度?