我已经使用此代码试试这个:
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
有人知道正确的代码吗?
答案 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());
}