题目要求:在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符。但对应的字节数不同,一个汉字占两个字节。定义一个方法,按照最大的字节数来取子串。如:对于“ab你好”,如果取三个字节,那么子串就是ab与“你”字的半个,那么半个就要舍弃。如果去四个字节就是“ab你”,取五个字节还是“ab你”.
public static void main(String[] args) {
String str1 = "ass";
String str2 = "ba你好";
System.out.println(str2.substring(0,medth(str1, str2)));
public static int medth(String str1, String str2) {
byte[] byteStr1 = str1.getBytes();
byte[] byteStr2 = str2.getBytes();
byte[] byteStr3 = new byte[byteStr1.length];
int count = 0;
int retu = 0;
for (int i = 0; i < byteStr1.length; i++) {
byteStr3[i] = byteStr2[i];
}
for (int i = 0; i < byteStr3.length; i++) {
if (byteStr3[i] < 0) {
count++;
}
}
if(count % 2 == 0) {
retu = byteStr3.length - count / 2;
} else {
retu = byteStr3.length - count / 2 - 1;
}
//System.out.println(retu);
return retu;
}