刚刚测试的时候发现java在Linux与windows下一个中文字符所代表的字节不相同,此处是在Linux下测试的,以下作为字节参考:
|
windows |
Linux |
中文 |
2 |
3 |
英文 |
1 |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public class Substr { public static String sub(String s,int start,int end) { byte[] arr=s.getBytes(); byte[] subs=new byte[arr.length]; for(int i=start,j=0;i<=end;i++) { subs[j]=arr[i]; j++; } String substring = new String(subs); return substring; }
public static void main(String [] args) { String s="hello我是子字符串word"; System.out.println(s); System.out.println("子字符串:"); System.out.println(Substr.sub(s,5,22)); } }
|