我有一个编辑文本,我想计算其中的单词。编辑文本中有新行时出现问题。
我试过这个:
String[] WC = et_note.getText().toString().split(" ");
Log.i("wordcount", "wc: " + WC.length);
这是一个文本-> wc: 4
这是
一种
文本->厕所:4
这是
一个简单的
文本->厕所:4
有任何想法吗?
您想分割任意的空白字符串,而不仅仅是空格字符。因此,使用.split("\\s+")
而不是.split(" ")
.
我建议使用BreakIterator。根据我的经验,这是覆盖非标准语言(如日语)的最佳方式,其中没有分隔单词的空格。
这里是字数统计的例子。
即使有多个空格和前导和/或尾随空格和空行,这也可以工作:
String words = str.trim();
if (words.isEmpty())
return 0;
return words.split("\\s+").length; // separate string around spaces
你也可以在这里使用 \\W 而不是 \\s,如果你可以使用空格分隔词以外的东西。
迟到的答案,但我这样做
字符串 a = text.replaceAll("\s+","+");
字符串 b = a.replaceAll("[^+]", "");
textview1.setText(String.valueOf((long)(b.length() + 1)));