10

我有一个编辑文本,我想计算其中的单词。编辑文本中有新行时出现问题。

我试过这个:

String[] WC = et_note.getText().toString().split(" ");
Log.i("wordcount", "wc: " + WC.length);

这是一个文本-> wc: 4

这是

一种

文本-​​>厕所:4

这是

一个简单的

文本-​​>厕所:4

有任何想法吗?

4

4 回答 4

14

您想分割任意的空白字符串,而不仅仅是空格字符。因此,使用.split("\\s+")而不是.split(" ").

于 2012-05-01T19:20:19.660 回答
4

我建议使用BreakIterator。根据我的经验,这是覆盖非标准语言(如日语)的最佳方式,其中没有分隔单词的空格。

这里是字数统计的例子。

于 2017-11-07T09:08:02.643 回答
2

即使有多个空格和前导和/或尾随空格和空行,这也可以工作:

String words = str.trim();
if (words.isEmpty())
return 0;
return words.split("\\s+").length; // separate string around spaces  

你也可以在这里使用 \\W 而不是 \\s,如果你可以使用空格分隔词以外的东西。

于 2017-05-19T03:43:56.723 回答
0

迟到的答案,但我这样做

字符串 a = text.replaceAll("\s+","+");

字符串 b = a.replaceAll("[^+]", "");

textview1.setText(String.valueOf((long)(b.length() + 1)));

于 2022-01-28T18:36:49.393 回答