如何计算Java中字符串中每个字母的字母?

时间:2013-03-10 01:06:03

标签: java count split words

我已经使用此代码试试这个:

String st="Hello world have a nice day";
String arr=st.Split(" ");
for (int i=0; i < arr.length; i++) {
    ???
}

但它不起作用。

我希望它输出这样的东西:

Hello=5
World=5
have=4
a=1
nice=4
day=3

有人知道正确的代码吗?

3 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

String[] words = yourString.split(" ");

for (String word : words) {
  System.out.println(word + " length is: " + word.length());
}

答案 1 :(得分:1)

word.length()返回String的长度。

但是,split()方法只是按空格分割String,将所有内容都保留在结果分割中。所有我指的是标点符号,制表符,换行符等等,所有这些都将计入长度。因此,您可能希望执行以下操作,而不仅仅是执行word.length()

word.replaceAll("\p{Punct}", "").trim().length()

  • replaceAll("\p{Punct}", "")删除了所有标点符号 字符串。

  • trim()删除所有前导和尾随空格。

例如,一句话:

  

我看到了一个小小的意志。\ n

\n表示行尾字符,例如,如果从文件中读取字符串,则可能会得到。

句子将分为:

"I"  
"saw"  
"a"  
"will-o'-the-wisp.\n"

最后一个字符串

  

鬼火。\ n

有18个字符,但这超过了单词中的字符数。在replaceAll()方法之后,字符串将如下所示:

  

鬼火\ n

trim()方法之后,字符串将如下所示:

  

鬼火

长度为12,字长。

答案 2 :(得分:0)

使用增强的for循环并打印出单词及其长度。

foreach(String w : st.split()) {
    System.out.println(w + ": " + w.length());
}