public static void main(String[] args) throws IOException {
String str1 = "ΔΞ123456";
System.out.println(str1+"-"+str1.matches("^\\p{InGreek}{2}\\d{6}")); //ΔΞ123456-true
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str2 = br.readLine(); //ΔΞ123456 same as str1.
System.out.println(str2+"-"+str2.matches("^\\p{InGreek}{2}\\d{6}")); //Ξ"Ξ�123456-false
System.out.println(str1.equals(str2)); //false
}
Эта же строка не соответствует регулярному выражению при чтении с клавиатуры.
Что вызывает эту проблему, и как мы можем это решить?
Заранее спасибо.
EDIT: я использовал System.console() для ввода и вывода.
public static void main(String[] args) throws IOException {
PrintWriter pr = System.console().writer();
String str1 = "ΔΞ123456";
pr.println(str1+"-"+str1.matches("^\\p{InGreek}{2}\\d{6}")+"-"+str1.length());
String str2 = System.console().readLine();
pr.println(str2+"-"+str2.matches("^\\p{InGreek}{2}\\d{6}")+"-"+str2.length());
pr.println("str1.equals(str2)="+str1.equals(str2));
}
Выход:
ΔΞ123456-правда-8
ΔΞ123456
ΔΞ123456-правда-8
str1.equals(str2) = TRUE