使用BufferedReader读取数组?

问题描述 投票:0回答:3

我刚刚开始学习 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;
java arrays string bufferedreader
3个回答
3
投票

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

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

ticketsSold[0] = buffer;

ticketPrice[0] = buffer;

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

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

希望这有帮助,欢迎来到 Stack Overflow!


0
投票

peggy 的回答已经解释了为什么会出现错误以及如何解决它们。但实际上你根本不需要

ticketsSold
ticketPrice
。您说要将输入放入
data[0]
data[1]
中。因此,完全删除
ticketsSold
ticketPrice
并写入

data[0] = buffer;

data[1] = buffer;

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


0
投票

我也不太了解,因为我也是初学者 但我认为这应该可以正常工作

BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
System.out.print ("Enter your details:");//(suppose name and email)
buffer = br.readLine ();
String[] strArray = buffer.split(' ');
//then this strArray contains all the input separately
String name = strArray[0];
String email= strArray[1];
© www.soinside.com 2019 - 2024. All rights reserved.