2016-02-19 5 views
2

привет, ребята Мне нужна помощь при чтении из файла с разделителем пространства. Проблема заключается в том, например, я получил текстовый файл формата следующим образом: Имя IDчтение из файла с разделителем пробелов

пример:

1 мое имя

, как я могу получить строку вместе (мое имя), как код у меня есть попробовал только получить меня (моего). Я не могу изменить разделитель из текстового файла

 while(myScanner.hasNextLine()) 
     { 
      String readLine = myScanner.nextLine(); 
      String readData[] = readLine.split(" "); 
      String index = readData[0]; 
      String name = readData[1]; 

     } 
     myScanner.close(); 
+1

индекс 2 будет иметь имя в нем, а затем вы можете просто объединить два (то есть my и name, чтобы получить желаемый результат). –

+0

hmm, но если имя - это просто имя, а не мое имя, тогда будет ошибка по индексу 2 –

ответ

0

Если это всегда просто будет идентификатор пространства имя с ничего не придет после него, то вы можете сделать это:

String readLine = myScanner.nextLine(); 
int split = readLine.indexOf(" "); 
String index = readLine.substring(0, split); 
String name = readLine.substring(split + 1); 

Это будет работать, только если это только два поля. Если после этого добавить больше полей, нет (общего) способа определить, где заканчивается пункт 2, а третий - начинается.

Другой способ заключается в использовании next, nextInt и т.д., чтобы читать именно то, что вы хотите:

String index = myScanner.next(); //Or int index = myScanner.nextInt(); 
String name = myScanner.nextLine().substring(1); //drop the leading space 

Это немного более гибким в подходе, который может быть лучше всего подходит для ваших нужд.

+0

yup его всегда 2 поля. Спасибо, это работает! –

0

Используйте следующий код.

while(myScanner.hasNextLine()) 
{ 
    String readLine = myScanner.nextLine(); 
    if(null != readLine && readLine.length()>0) { 
     String index = readLine.substring(0, id.indexOf(" ")); 
     String name = readLine.substring(id.indexOf(" ") + 1); 
    } 

} 
myScanner.close(); 
Смежные вопросы