-5

我已经使用此代码进行了尝试:

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

请问有人知道正确的代码吗?

4

3 回答 3

4

你可以使用这样的东西:

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

for (String word : words) {
  System.out.println(word + " length is: " + word.length());
}
于 2013-03-10T01:07:07.807 回答
1

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,即单词的长度。

于 2013-03-10T01:19:18.547 回答
0

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

foreach(String w : st.split()) {
    System.out.println(w + ": " + w.length());
}
于 2013-03-10T01:11:23.593 回答