2015-07-14 5 views
2

Я только начинаю изучать Java, и я не уверен, как использовать BufferedReader для чтения массива в задании, над которым я работаю. getSalesData - это собственный метод. Я понимаю, что мне нужно использовать BufferedReader, чтобы попросить пользователя ввести номер (который здесь содержит строки), а затем сохранить его в данных [0] и [1], но я не уверен, как действовать и исправлять ошибки. Любые советы были бы очень оценены!Использование BufferedReader для чтения массива?

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; 
+1

Какие ошибки вы получаете? – Cyclonecode

+0

У меня проблемы с билетами. Мне все время говорят, что есть несоответствие типов, и программа не может преобразовать из String в String []. Я также подозреваю, что некоторые из синтаксиса моего массива могут быть неверными. – learningjava

+0

Вы делаете 'br = новый BufferedReader (новый InputStreamReader (System.in));' дважды - вам не нужно. Когда вы будете 'br', вы просто делаете' br.readLine() 'каждый раз, когда вам это нужно. И получите привычку закрывать свои потоки и читателей, когда вы закончите ... 'br.close()' ... (также google для 'try-with-resources') –

ответ

3

br.readLine() вернет строку и вы устанавливаете билетыSold = buffer. Итак, давайте рассмотрим немного ближе: buffer - это строка, а ticketSold - это массив строк. это должно вызвать ошибку для вас (если вы можете опубликовать трассировку стека ошибок, которая будет очень полезна). Я не уверен, если вы действительно хотите, чтобы билетыSold и ticketPrice были массивами строк, так как здесь выглядит так, как будто они должны быть просто строками.

Так что, если вы хотите, чтобы они действительно массивы строк, используйте:

ticketsSold[0] = buffer; 

и

ticketPrice[0] = buffer; 

или вы можете изменить declartion из ticketPrice и ticketsSold быть строки:

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

надеюсь, что это поможет и приветствуем переполнение стека!

+0

Большое вам спасибо, ваш ответ сработал в совершенстве! Я очень ценю это. – learningjava

+0

@learningjava - не забудьте «принять» этот ответ! –

0

Ответ peggy уже объяснил, почему вы получаете ошибки и как их разрешать. Но на самом деле вам не нужны ticketsSold и ticketPrice. Вы сказали, что хотите поместить ввод в data[0] и . Таким образом, полностью удалить ticketsSold и ticketPrice и писать

data[0] = buffer; 

и

data[1] = buffer; 

в соответствующих местах. Тогда ваше возвращаемое значение будет правильным.

Смежные вопросы