用于循环以添加扫描仪输入的变量

时间:2014-08-25 23:30:56

标签: java variables for-loop java.util.scanner

所以我是Java的新手,我认为我做了一些简单的事情就像for循环一样打印出一串字符串或者其他东西, 我的代码最终是这样的:

package package.four;
import java.util.Scanner;

public class arrayrecurse {

public static void main(String[] args) {
    Scanner in = new Scanner (System.in);
    System.out.println("Please enter 5 words");
    String a = in.next();
    String b = in.next();
    String c = in.next();
    String d = in.next();
    String e = in.next();
    String[] s = {a, b, c, d, e};
    for(int i = 0; i< s.length;){
        System.out.println(s[i]);
        i++;
    }
    in.close();
}
}

它工作正常,但我的问题是,是否可以通过变量进行for循环循环。 例如,如果我想要这样的东西:

for(words = 5; words > 0;){
String a = in.next();
a++}

每次输入新单词时,它会在哪里更改变量。 是否有可能做类似的事情,或者每次我想从控制台输入新的单词输入时是否需要输入String variable = in.next();

2 个答案:

答案 0 :(得分:1)

使用ArrayList存储输入变量。

那是:

import java.util.*;

public static void main(String[] args) {

    List<String> inputVars = new ArrayList<>();

    Scanner sc = new Scanner(System.in);
    while (sc.hasNext())
    {
        inputVars.add(sc.next());
    }

    for (String s: inputVars)
    {
        System.out.println(s);
    }
}

或者,如果要更改ArrayList的内容:

public static void main(String[] args) {

    List<String> inputVars = new ArrayList<>();

    Scanner sc = new Scanner(System.in);
    while (sc.hasNext())
    {
        inputVars.add(sc.next());
    }

    for (int i = 0; i < inputVars.size(); i++)
    {
        System.out.println(inputVars.get(i));            
        //Change the variable
        inputVars.set(i, "Hello, " + inputVars.get(i));
    }
}

答案 1 :(得分:1)

你可以在循环中调用next(),但如果你想在之后使用它,你需要在循环之外声明变量,同样,在Java中没有++运算符用于String或数组:

String[] inputs = new String[5];
for (int i = 0; i < inputs.length; ++i)
{
    inputs[i] = in.next();
}