我刚刚开始学习 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() 将返回一个字符串,并且您正在设置 TicketSold = buffer。因此,让我们仔细检查一下:buffer 是一个字符串,而 TicketSold 是一个字符串数组。这应该会为您产生一个错误(如果您可以发布错误堆栈跟踪,那将非常有帮助)。我不确定您是否真的希望 TicketSold 和 TicketPrice 成为字符串数组,因为这里看起来它们应该只是字符串。
因此,如果您希望它们真正成为字符串数组,请使用:
ticketsSold[0] = buffer;
和
ticketPrice[0] = buffer;
或者您可以将 TicketPrice 和 TicketSold 的声明更改为字符串:
String ticketsSold = "";
String ticketPrice = "";
希望这有帮助,欢迎来到 Stack Overflow!
peggy 的回答已经解释了为什么会出现错误以及如何解决它们。但实际上你根本不需要
ticketsSold
和 ticketPrice
。您说要将输入放入 data[0]
和 data[1]
中。因此,完全删除ticketsSold
和ticketPrice
并写入
data[0] = buffer;
和
data[1] = buffer;
在适当的位置。那么你的返回值就会是正确的。
我也不太了解,因为我也是初学者 但我认为这应该可以正常工作
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];