Java如何存储多个字符串变量

时间:2015-02-11 23:53:43

标签: java

我想从用户那里获取信息,例如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。

2 个答案:

答案 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) +")");
    }
}

见这里:https://ideone.com/l1TnF8

答案 1 :(得分:0)

正如kon已经注意到你需要一个人的字符串数组,正在发生的事情是,每次输入一个新值时,新值只会替换旧值,因为person只是一个占用一个内存空间的字符串。 / p>