我试图分割一串单词,每个单词用“。”分隔。 我不知道我做错了什么:
@Override
protected void onPostExecute(String result) {
result = "order . war harmony . concord";
result = result.replace("(noun)", "");
result = result.replace("(antonym)", "");
result = result.replace(":", "");
result = result.replace("|", " . ");
String[] separated = result.split(".");
tv.setText(result + ": " + separated.length);
super.onPostExecute(result);
}
Yet sepa.length总是0!
答案 0 :(得分:3)
句点(。)需要转义,因为String#split
使用正则表达式。在正则表达式中,未转义的句号意味着任何字符:
String[] separated = result.split("\\.");
答案 1 :(得分:2)
java中的split方法需要regex参数,所以要注意正则表达式中的字符“。”意味着任何角色,所以你需要将它作为一个特殊角色处理。
因此您的代码可能如下所示:
@Override
protected void onPostExecute(String result) {
result = "order . war harmony . concord";
result = result.replace("(noun)", "");
result = result.replace("(antonym)", "");
result = result.replace(":", "");
result = result.replace("|", " . ");
// changed the splitting character "." to be regex "\\."
String[] separated = result.split("\\.");
tv.setText(result + ": " + separated.length);
super.onPostExecute(result);
}