使用 BufferedReader 读取数组?

Using BufferedReader to read an array?

我刚刚开始学习 Java,我不确定如何使用 BufferedReader 来读取我正在处理的作业中的数组。 getSalesData 是它自己的方法。我知道我需要使用 BufferedReader 来要求用户输入一个数字(这里是字符串),然后将其存储在数据 [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;

br.readLine() 将 return 一个字符串,您正在设置 ticketsSold = buffer。因此,让我们仔细检查一下:buffer 是一个字符串,而 ticketsSold 是一个字符串数组。这应该会为您产生错误(如果您可以 post 错误堆栈跟踪,那将非常有帮助)。我不确定您是否真的希望 ticketsSold 和 ticketPrice 是字符串数组,因为这里看起来它们应该只是字符串。

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

ticketsSold[0] = buffer;

ticketPrice[0] = buffer;

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

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

希望对您有所帮助,欢迎来到 stack overflow!

peggy 的回答已经解释了为什么会出现错误以及如何解决这些错误。但实际上你根本不需要 ticketsSoldticketPrice。你说你想把输入放在 data[0]data[1] 中。因此,完全删除 ticketsSoldticketPrice 并写入

data[0] = buffer;

data[1] = buffer;

在适当的位置。那么您的 return 值将是正确的。