我正在尝试与字符串进行比较,一个来自用户,另一个来自文件。读取用户输入时,扫描仪不会拾取带重音的字符,显示为问号(我正在使用Netbeans)。我的几个朋友拥有完全相同的代码,并且在那里工作。我试图创建一个新项目或更改编码,但是没有任何效果。这是代码:
str = sc.nextLine();
strAux1 = Normalizer.normalize(str, Normalizer.Form.NFD);
strAux1 = strAux1.replaceAll("\\p{M}", "");```
答案 0 :(得分:0)
请尝试使用以下语句初始化Scanner
对象:
Scanner sc=new Scanner(System.in).useLocale(new Locale("ru"));
下面是一个示例程序:
import java.util.Locale;
import java.util.Scanner;
public class Helper {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in).useLocale(new Locale("ru"));
System.out.print("Enter a text: ");
String str=sc.nextLine();
System.out.println(str);
}
}
示例运行:
Enter a text: Rússia
Rússia