我有一个edittext,我想计算其中的单词。如果edittext中有新行,则会出错。
我试过了:
String[] WC = et_note.getText().toString().split(" ");
Log.i("wordcount", "wc: " + WC.length);
这是一个文字 - > wc:4
这是
一
text - > wc:4
这是
一个简单的
text - > wc:4
有什么想法吗?
答案 0 :(得分:9)
您希望拆分任意字符串的空格,而不仅仅是空格字符。因此,请使用.split("\\s+")
代替.split(" ")
。
答案 1 :(得分:3)
我建议使用BreakIterator。根据我的经验,这是覆盖日语等标准语言的最佳方式,因为没有空格可以分隔单词。
字数统计示例here。
答案 2 :(得分:0)
即使有多个空格和前导和/或尾随空格和空行,这也可以工作:
String words = str.trim();
if (words.isEmpty())
return 0;
return words.split("\\s+").length; // separate string around spaces
你也可以在这里使用\\ W而不是\\ s,如果除了空格分隔之外你还可以使用其他东西。