Java将字符串中的单词打印成数组

时间:2015-02-05 00:43:28

标签: java

我希望用户输入他们可以通过缓冲读卡器输入的任何单词并将它们放入数组中。然后我想在一个单独的行上打印出每个单词。所以我知道我需要某种字计数器来计算用户输入的字数。这就是我到目前为止所做的。

import java.text.*;
import java.io.*;

public class test {
    public static void main (String [] args) throws IOException {

        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
        String inputValue;

        inputValue = input.readLine();
        String[] words = inputValue.split("\\s+");

让我们说用户输入单词here is a test run。程序应该计算5个值并打印出这样的单词

here
is
a
test
run

关于以何种方式处理此问题的任何帮助或建议?

2 个答案:

答案 0 :(得分:2)

确实没有必要计算单词(除非你真的想要)。您可以改为使用for-each loop之类的

String[] words = inputValue.split("\\s+");
for (String word : words) {
    System.out.println(word);
}

正如我所说的,如果你真的想要,那么你可以得到一个数组的length(你的"计数"),然后使用常规{ {1}}循环播放

for

如果您不需要在单独的一行中使用每个单词,那么您也可以使用Arrays.toString(Object[])之类的内容

String[] words = inputValue.split("\\s+");
for (int i = 0; i < words.length; i++) {
    System.out.println(words[i]);
}

答案 1 :(得分:0)

我希望我没有回答作业。如果是这样,你应该这样标记它。您可以尝试以下两种方法。

    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    String inputValue = input.readLine();
    String[] words = inputValue.split("\\s+");

    // solution 2
    for(int i=0; i<words.length; i++){
        System.out.println(words[i]);
    }

    // solution 1
    System.out.println(inputValue.replaceAll("\\s+", "\n"));

现场演示:http://ideone.com/bCucIh