我想从用户那里获取信息,例如Smith, John 12345
的姓氏,名字和身份证号码,并继续循环,直到用户输入“退出”。每当我输入两个输入时,第一个输入被清除,第二个输入被存储。也许我应该采用与我所拥有的不同的方法......
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
String inputValues;
String person;
String lastname = "";
String firstname = "";
String id = "";
while(true){
inputValues = input.readLine();
person = inputValues.split("\\s+");
if(inputValues.equals("exit"){
break;
}
else {
lastname = person[0];
firstname = person[1];
id = person[2];
}
}
我知道我的程序错了,但这就是我到目前为止所做的。我不知道如何存储多个人,最终打印出他们的名字和id。
答案 0 :(得分:0)
我希望我理解你的问题是正确的:你的问题是你是否覆盖旧条目?为了防止你必须使用某种数组或列表。
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
String inputValues;
String[] person;
List<String> lastname = new ArrayList<String>();
List<String> firstname = new ArrayList<String>();
List<String> id = new ArrayList<String>();
while(true){
inputValues = input.readLine();
person = inputValues.split("\\s+");
if(inputValues.equals("exit")){
break;
}else{
lastname.add(person[0]);
firstname.add(person[1]);
id.add(person[2]);
}
}
for(int i=0; i<lastname.size(); i++)
System.out.println(firstname.get(i) +" "+ lastname.get(i) +" ("+ id.get(i) +")");
}
}
答案 1 :(得分:0)
正如kon已经注意到你需要一个人的字符串数组,正在发生的事情是,每次输入一个新值时,新值只会替换旧值,因为person只是一个占用一个内存空间的字符串。 / p>