我正在尝试将一些希腊词添加到ArrayList
以便稍后与输入到系统的希腊词进行比较。这种方法无法正常工作,因为它找不到匹配项。如何在保留UTF-8编码的同时正确执行此操作?
try {
el_GR_words = new ArrayList<String>();
el_GR_words.add("μουν".getBytes("UTF-8").toString()); //example only, I dont know what this word means, so pardon me if it is a bad word lol
}
catch(UnsupportedEncodingException uee) {
uee.printStackTrace();
}
ArrayList words = new ArrayList();
Iterator<String> it = el_GR_words.iterator();
while (it.hasNext()) {
String thisWord = it.next();
if (thisWord.equalsIgnoreCase(aWord) || aWord.toLowerCase().contains(thisWord.toLowerCase())) {
words.add(thisWord);
}
}
答案 0 :(得分:2)
getByte("UTF-8").toString()
没有按照您的想法或希望做到。它将String转换为字节数组,然后使用标准的toString()方法,它基本上转储对象的内存地址。您可以轻松尝试:
System.out.println("μουν".getBytes("UTF-8").toString());
System.out.println("μουν".getBytes("UTF-8").toString());
例如:
[B@556d8a64
[B@a98d70d
只需将"μουν"
放入您的列表中,您就可以了,等于将会有效。