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

问题描述:

我已经使用这个代码尝试了这一点:如何计算Java中每个字符串中的字母?

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 

有谁知道正确的代码,请?

您可以使用这样的事情:

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

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

使用for循环的增强,并打印出来的字和它的长度。

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

word.length()返回字符串的长度。

但是,split()方法只是将空格分开,将所有内容留在生成的分割中。通过我的一切,我的意思是标点符号,制表符,换行符等,所有这些将被计算在长度。因此,不要只是在做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,单词的长度。