-3

有没有办法创建某种类型的 For 循环来用空格分隔字符串?到目前为止,我可以显示一个字符串并找出它有多少个字符。

import java.util.Scanner;
import java.lang.String;

public class Word{
  public static void main(String args[])
  {
     Scanner scan = new Scanner(System.in);

     int b;

    String word;

    System.out.println ("Enter a word: ");
    word = scan.next();

    b = word.length();

    System.out.println (word);
    System.out.println (b);
  }
}
4

6 回答 6

8

作为 的替代方法Scanner,您可以执行以下操作:

String[] parts = line.split(" ");
for (String part : parts) {
    //do something interesting here
}
于 2012-04-06T02:15:57.163 回答
2

使用split()String 类中的方法,如下所示:

String line = "a series of words";
String[] words = line.split("\\s+");

它将返回 aString[]中的单个单词line,对于上面的示例,它将产生:

{"a", "series", "of", "words"}
于 2012-04-06T02:16:28.063 回答
1

您可以使用String.split将句子拆分为单词数组..类似

string[] words = word.split(" ");
for (String s: words)
{
    System.out.println(s);
    System.out.println("\n");
}
于 2012-04-06T02:17:42.487 回答
0

你试过看java API吗?您可以使用很多不同的功能......我的头顶分割会很好地工作,您甚至不必编写循环

http://docs.oracle.com/javase/6/docs/api/

于 2012-04-06T02:16:48.620 回答
0

这是未经测试的,但我觉得这是一个学习练习,所以这应该让你走上正确的道路。在 for 循环中,您将单词的每个字符作为子字符串访问,并在末尾连接一个空格(单词的结尾也是如此)。

string word2 ="";
for (int i = 0; i<word.length-1;i++) {
    word2 = word.substring(i, i+1)+" ";
}
于 2012-04-06T02:18:25.713 回答
0

我正在使用以下代码:

Arrays.stream(yourString.split(" ")).forEach( element -> {
                // do something with each element
                System.out.println(element + "\n");
            });
于 2021-04-12T10:02:58.663 回答