写一个方法 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]