我想为这段代码得出两个真值的结果,但我得到一个假和一个真:
import java.util.Scanner;
public class KFCG {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("input:");
System.out.println("你好".contains(console.nextLine()));
System.out.println("你好".contains("你"));
}
}
在 System.out 上:
input:你
false
true
然后我记得当系统提示我“某些字符无法使用“US-ASCII”字符编码映射时,我选择了“另存为UTF-8”将代码保存为UTF-8。要么更改编码,要么删除这些字符“US-ASCII”字符编码不应该这样做。”
所以我尝试将字符串从控制台编码为 UTF-8,但仍然无法按我的意愿工作:
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Scanner;
public class KFCG {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.print("input:");
System.out.println("你好".contains(getUTF8XMLString(console.nextLine())));
System.out.println("你好".contains("你"));
}
private static String getUTF8XMLString(String xml) {
StringBuffer sb = new StringBuffer();
sb.append(xml);
String xmString = "";
String xmlUTF8= "";
try {
xmString = new String(sb.toString().getBytes("UTF-8"));
xmlUTF8 = URLEncoder.encode(xmString, "UTF-8");
} catch (UnsupportedEncodingException e) {}
// return to String Formed
return xmlUTF8;
}
}
在 System.out 上:
input:你
false
true
我怎样才能得到两个真?也就是说,如何比较从控制台读取的汉字和程序或.txt文件中的字符?