我已经使用此代码进行了尝试:
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());
}
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"
最后一个字符串
将-o'-the-wisp。\n
有 18 个字符,但这超过了单词中的字符数。在该replaceAll()
方法之后,字符串将如下所示:
柳树妖\n
在该trim()
方法之后,字符串将如下所示:
威洛威斯普
它的长度为 12,即单词的长度。
使用增强的 for 循环并打印出单词及其长度。
foreach(String w : st.split()) {
System.out.println(w + ": " + w.length());
}