import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
public class Testzhongwen {
public static void main(String[] args) {
Scanner m=new Scanner(System.in);
System.out.println("请输入一串中文:");
String line=m.nextLine();
TreeMap<Character,Integer> n=new TreeMap<>();
for(int i=0;i<line.length();i++){
char key=line.charAt(i);
Integer value=n.get(key);
if(value==null){
n.put(key, 1);
}
else{
value++;
n.put(key, value);
}
}
// String regex ="[^\\u4e00-\\u9fa5.]+";
StringBuilder sb=new StringBuilder();
Set<Character> keySet=n.keySet();
for(Character j:keySet){
Integer value=n.get(j);
sb.append(j).append("(").append(value).append(")");
}
String re=sb.toString();
System.out.println(re);
}
}
这是我的代码,输入英文就对,输入中文就不对
请问该怎么解决呢?
中文是双字节字符。不能直接用charAt