将用户输入进行5次,将它们存储在变量中并在最后显示所有5个值。我怎么能用Java做到这一点?不使用数组,集合或数据库。只有String
和int
等单个变量。
输出应该如下所示
https://drive.google.com/file/d/0B1OL94dWwAF4cDVyWG91SVZjRk0/view?pli=1
答案 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;