写一个方法,按字节截取字符串[书后练习题]
写一个方法? String left(String str ,int n) str字符串中可能包含中文,中文是2bytes,实现的功能是
如:“中abc12” n=4? 则该方法返回“中ab”? “中abc国a” n=6 则返回“中abc”中文是一半时不返回
01./**?
02.???? * @param args?
03.???? */?
04.??? public static void main(String[] args) {??
05.??????? System.out.println(subStringByBytes("你此AAA哈哈",6));??
06.?
07.??? }??
08.?
09.??? /***?
10.???? * 按byte截取字符串?
11.???? * @param str??
12.???? * @param end 截取几个byte?
13.???? * @return string?
14.???? */?
15.??? public static String subStringByBytes(String str, int end) {??
16.?
17.??????? if(str.length()*2 <end){??
18.??????????? return str;??
19.??????? }??
20.??????????
21.??????? char[] chArr = str.toCharArray();??
22.??????????
23.??????? int lenByte = 0;??
24.??????? for (int i = 0; i < chArr.length; i++) {??
25.??????????? if (chArr[i] > 255) {??
26.??????????????? lenByte += 2;??
27.?
28.??????????? } else {??
29.??????????????? ++lenByte;??
30.??????????? }??
31.??????????? if(lenByte>=end){??
32.??????????????? if(lenByte==end){??
33.??????????????????? return str.substring(0,i);??
34.??????????????? }??
35.??????????????? return str.substring(0,i-1);??
36.??????????? }??
37.?
38.??????? }??
39.?
40.??????? return str;??
41.?
42.??? }?
原帖地址:http://phpjava.org/thread-204-1-1.html
本文来自: PJDN--php&Java论坛|技术交流社区,打造中国php&java开发者社区[www.phpjava.org]