Я недавно делал простой проект по чтению, записи и сопоставлению строки в ядре Java. Я использовал StringTokenizer для анализа каждого элемента в строке. но при этом я вижу следующее сообщение об ошибке. Любая помощь относительно этого, спасибо заранее. сообщение Ошибка:java.util.NoSuchElementException при использовании StringTokenizer в java
Exception in thread "main" java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(Unknown Source)
at java.util.StringTokenizer.nextElement(Unknown Source)
at com.dhiraj.demo.ComparatorClass.main(ComparatorClass.java:64)
Мой код как следующий;
String listtable = "listtable.dat";
ArrayList<ListTableClass> ltc = new ArrayList<ListTableClass>();
try(FileInputStream fis = new FileInputStream(listtable);
BufferedReader bio = new BufferedReader(new InputStreamReader(fis))){
String line;
while((line = bio.readLine())!=null){
System.out.println(line);
StringTokenizer to = new StringTokenizer(line, "|");
//while(tokens.hasMoreElements()){
//System.out.println(tokens.nextElement());
//Integer id = Integer.parseInt(to.nextElement().toString().trim());
// System.out.println(id);
Integer id = Integer.parseInt(to.nextElement().toString());
//int id = Integer.parseInt(to.nextElement().toString().trim());
System.out.println("i am error");
String fname = to.nextElement().toString().trim();
String lname = to.nextElement().toString().trim();
String address = to.nextElement().toString().trim();
Integer age = Integer.parseInt(to.nextElement().toString().trim());
ltc.add(new ListTableClass(id, fname, lname, address, age));
//}
}
}catch(IOException e){
System.out.println(e);
}
for(ListTableClass t: ltc){
System.out.println(t.getId());
System.out.println(t.getFname());
System.out.println(t.getLname());
System.out.println(t.getAddress());
System.out.println(t.getAge());
}
и образец файла:
11120|bijaya|khanal|biratnagar|25
11121|chandramani|sapkota|hetauda|25
11117|Hari|Sapkota|bhaktapur|25
11118|pramod|chaulagain|banepa|25
11119|bigyan|shrestha|birjung|25
11120|bijaya|khanal|biratnagar|25
11114|suman|hamal|shangrila|25
11115|kishor|Neupane|Sanepa|25
Вы говорите, что ваш пример кода выше воспроизводит ошибку? Потому что я просто копировал код в свой код и отлично его запускал. Нет ошибок. Убедитесь, что вы предоставили нам код, который воспроизводит ошибку. Кроме того, рекомендуется использовать 'String.split()' в пользу 'StringTokenizer'. Гораздо проще в использовании. – sstan
Да, это вызывает ошибку в моей среде IDE. Может быть, потому, что я сделал тот же процесс для другого файла. –
так происходит ошибка с данными образца, которые вы предоставили? Или это происходит только с разными данными? Потому что, опять же, я не могу получить вашу ошибку с предоставленной вами информацией. – sstan