在不使用数组的情况下在Java中存储多个值

时间:2015-04-07 10:26:46

标签: java arrays variables primitive-types

将用户输入进行5次,将它们存储在变量中并在最后显示所有5个值。我怎么能用Java做到这一点?不使用数组,集合或数据库。只有Stringint等单个变量。

输出应该如下所示

https://drive.google.com/file/d/0B1OL94dWwAF4cDVyWG91SVZjRk0/view?pli=1

4 个答案:

答案 0 :(得分:1)

 public static void main(String[] args) {
    String s = "";
     Scanner in = new Scanner(System.in);
     for(int i=0;i<5;i++){
         s += in.nextLine();
     }
     System.out.println(s);
 }

答案 1 :(得分:1)

这似乎是徒劳的不必要的练习,但我离题了......

如果您想将它们存储在一个字符串中,您可以这样做:

Scanner in = new Scanner(System.in); 

String storageString = "";

while(in.hasNext()){
  storageString += in.next() + ";";
}

如果您输入foo bar baz,则storageString将包含foo;bar;baz;。 (in.next()将读取空格的输入字符串,in.hasNext()在行尾返回false)

随着更多字符串的输入,它们将附加到storageString变量。要检索字符串,您可以使用String.split(String regex)。使用它就像这样:

String[] strings = storageString.split(";");

从上面的storageString变量检索的strings数组应该具有值["foo", "bar", "baz"]

我希望这会有所帮助。使用字符串作为存储不是最佳选择,因为每次将字符串附加到其上时JVM都会创建一个新对象。要解决此问题,请使用StringBuilder

*编辑:我原先说过strings数组的值是["foo", "bar", "baz", ""]。这是错的。因此,javadoc状态'Trailing空字符串不包含在结果数组'中。

答案 2 :(得分:0)

为什么不使用Stringbuilder或StringBuffer,继续添加相同的分隔符,后跟输入文本。

答案 3 :(得分:0)

使用简单的String对象并将其与用户提供的新值连接。

String myString = "";

// while reading from input
myString += providedValue;