通过正则,先替换掉非汉字的字符
然后 按照两个两个的来截取,处理好最后一个单字符的情况 String str = "你吃饭了吗,我们去吃饭吧。";
String regex = "[^\u4e00-\u9fa5]+";
String str2 = str.replaceAll(regex, "");
for (int i = 0; i < str2.length(); i=i+2) {
if (i+2 < str2.length()) {
System.out.println(str2.subSequence(i, i+2));
}
else {
System.out.println(str2.subSequence(i, i+1));
}
}
然后 按照两个两个的来截取,处理好最后一个单字符的情况 String str = "你吃饭了吗,我们去吃饭吧。";
String regex = "[^\u4e00-\u9fa5]+";
String str2 = str.replaceAll(regex, "");
for (int i = 0; i < str2.length(); i=i+2) {
if (i+2 < str2.length()) {
System.out.println(str2.subSequence(i, i+2));
}
else {
System.out.println(str2.subSequence(i, i+1));
}
}
if (i+2 < str2.length()) {
System.out.println(str2.subString(i, i+2));
}
else {
System.out.println(str2.subString(i));
}subSequence的效果跟subString效果一样
String regex = "[^\u4e00-\u9fa5]+";
String str2 = str.replaceAll(regex, "");
// 3楼答过了,就是把i=i+2,换为i++。每次跳一个字符就可以了
for (int i = 0; i < str2.length(); i=i+2) {
if (i+2 < str2.length()) {
System.out.println(str2.subSequence(i, i+2));
}
else {
System.out.println(str2.subSequence(i, i+1));
}
}
String str = "你吃饭了吗,我们去吃饭吧。";
String regex = "[^\u4e00-\u9fa5]+";
String str2 = str.replaceAll(regex, "");
for (int i = 0; i < str2.length(); i=i+1) {
if (i+1 < str2.length()) {
System.out.println(str2.subSequence(i, i+2));
}
else {
System.out.println(str2.subSequence(i, i+1));
}
}