使用BufferedReader读取数组?

时间:2015-07-14 22:06:46

标签: java arrays string bufferedreader

我刚刚开始学习Java,我不确定如何使用BufferedReader来读取我正在进行的赋值中的数组。 getSalesData是它自己的方法。我知道我需要使用BufferedReader来要求用户输入一个数字(这里是字符串),然后将其存储在data [0]和[1]中,但我不确定如何继续并修复错误。非常感谢任何提示!

   String [] getSalesData (){
        String [] data = new String [2];
        String [] ticketsSold = "";
        String [] ticketPrice = "";

        BufferedReader br = null;
        String buffer = new String ();

        try {
            br = new BufferedReader (new InputStreamReader(System.in));
            System.out.print ("Enter your agent ID:");
            buffer = br.readLine ();
            ticketsSold = buffer;

            br = new BufferedReader (new InputStreamReader(System.in));
            System.out.print ("Enter your agent ID:");
            buffer = br.readLine ();
            ticketPrice = buffer;


        } catch (Exception e) {
            System.out.println ("Invalid entry");
        }

        return data;

2 个答案:

答案 0 :(得分:3)

br.readLine()将返回一个String,并且您正在设置ticketsSold = buffer。所以让我们仔细研究一下:buffer是一个字符串,而ticketSold是一个字符串数组。这应该会为您产生错误(如果您可以发布非常有帮助的错误堆栈跟踪)。我不确定你是否真的希望ticketSold和ticketPrice成为Strings数组,因为它看起来好像只是字符串。

因此,如果您希望它们真的是字符串数组,请使用:

ticketsSold[0] = buffer;

ticketPrice[0] = buffer;

或者您可以将ticketPrice和ticketsSold的声明更改为字符串:

String ticketsSold = "";
String ticketPrice = "";

希望这会有所帮助并欢迎堆叠溢出!

答案 1 :(得分:0)

佩吉的答案已经解释了为什么你会得到错误以及如何解决它们。但实际上你根本不需要ticketsSoldticketPrice。您说您希望将输入放在data[0]data[1]中。因此,请完全删除ticketsSoldticketPrice并写入

data[0] = buffer;

data[1] = buffer;

在适当的位置。那么你的返回值就是正确的。