在java中添加String时,为arraylist保留UTF-8

时间:2015-07-24 17:18:59

标签: java utf-8

我正在尝试将一些希腊词添加到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);
    }
}

1 个答案:

答案 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

只需将"μουν"放入您的列表中,您就可以了,等于将会有效。