如何计算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,单词的长度。