2017-02-17 4 views
-1

Я пытаюсь ввести N чисел по прямой, и так как я хочу N этих строк, я написал следующий фрагмент кода.Невозможно преобразовать String [] в строку в java, используя split ("\ s")

public static void main (String args []) throws IOException 
{ 
InputStreamReader in = new BufferedReader(new InputStreamReader(System.in)); 
int N = in.readLine(); 
String line []; 
for (int i = 0; i < N; i++) 
{ 
    line [i] = in.readLine().split("\\s"); 
} 

Всякий раз, когда я набираю это, он показывает, что он не может преобразовать из String [] в String.

+0

вместо этого используйте сканер. –

+0

Потратьте немного времени и прочитайте [BufferedReader] (https://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html) и [String] (https: // docs. oracle.com/javase/7/docs/api/java/lang/String.html). –

ответ

1

Вы пытаетесь присвоить массиву из String к индексу массива, который может только провести индивидуальную String. Вам нужно присвоить массив непосредственно к переменной:

line = in.readLine().split("\\s"); 
// do something with line 

В качестве альтернативы, если вы планируете использовать линии после цикла, вы можете хранить их в 2-мерном массиве:

String[][] lines = new String[N][]; 
for (int i = 0; i < N; i++) { 
    line[i] = in.readLine().split("\\s"); 
} 
+0

Спасибо, что это помогло много – jiggylepcha

+0

@JIGMELOBSANGLEPCHA не забыл принять ответ, если эта помощь вы можете посмотреть здесь http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -Работа –

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