Рейтинг:
4
OriginalGriff
Потому что вы специально говорите, что ваши данные разделены исключительно запятыми, а это не так. Данные, которые вы показываете, имеют два разделителя: запятую и новую строку.
Попробовать это:
import java.util.*;
public class Main
{
public static void main (String[]args)
{
System.out.println ("Hello World");
Scanner scanner = new Scanner ("P1,19\nP2,25");
scanner.useDelimiter (",|\\n");
while (scanner.hasNextLine ())
{
String s = scanner.next ();
scanner.skip (scanner.delimiter ());
int num = scanner.nextInt ();
System.out.println (s);
System.out.println (num);
}
}
}
hiwa doski
ваш код работал и печатал их, но в конце концов я все равно получаю исключение !
я написал ваш код вот так
try (Scanner scanner = new Scanner((new FileReader("names-with re.txt")))) {
scanner.useDelimiter(",|\\n");
while (scanner.hasNextLine()) {
String s = scanner.next();
scanner.skip(scanner.delimiter());
int age = scanner.nextInt();
System.out.println(s);
System.out.println(age);
}
}
и я все еще получаю NoSuchElementException со строкой `String s = scanner.next();', почему это так ?
OriginalGriff
Ну, посмотрите на свои данные и узнайте! У меня нет к нему доступа...
hiwa doski
мои данные точно такие же как я уже упоминал это текстовый файл содержащий
П1,19
Р2,25
Dave Kreskowiak
Есть ли пустая строка с только новой строкой в качестве последней строки в файле? Я был бы готов поставить на "да".
Это будет означать, что ваш файл выглядит следующим образом:
P1,19\nP2,25\n\n
hiwa doski
да, я думаю, что это так, потому что есть строка номер 3, которая показывает в моей IDE, которая пуста, слава Вам за то, что вы это выяснили, и спасибо за вашу помощь, но последний вопрос, что я могу сделать с этим, чтобы он не бросал исключение, я уже поставил '\n' в разделитель, так что еще можно с этим поделать ?
Dave Kreskowiak
Проверьте длину строки, прежде чем обрабатывать ее? Это больше, чем 0?
Мне это кажется довольно очевидным.
hiwa doski
ладно, спасибо.