Ошибка StringTokenizer: NoSuchelementException после завершения строки токена - PullRequest
0 голосов
/ 25 сентября 2018

Когда я передаю токенизатору строку со своей клавиатуры, это не проблема.Однако я пытаюсь передать свои данные через строку файла с именем, в котором между двумя словами есть пробел.Вот когда я получаю ошибку NoSuchelementException.Я не уверен, что мне нужно закрыть файл?Но файл имеет больше информации, которую нужно прочитать.Спасибо, что нашли время, чтобы прочитать мой вопрос:)

Вот код:

System.out.println("Enter your first and last name");
line = sc.nextLine();
System.out.println(line);
StringTokenizer lineTok = new StringTokenizer(line);
first = (String) lineTok.nextToken();
last = (String) lineTok.nextToken();

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

А следующий напечатает все слова из строки.

package tryouts;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.StringTokenizer;

public class StringTokenizerTest {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner sc = new Scanner(new FileInputStream(
                "/usr/projects/tryouts/src/tryouts/test.txt"));
        String line = sc.nextLine();
        System.out.println(line);
        StringTokenizer lineTok = new StringTokenizer(line);
        while (lineTok.hasMoreTokens()) {
            System.out.println(lineTok.nextToken());
        }
        sc.close();
    }
}
0 голосов
/ 25 сентября 2018

У меня работает нормально.

package tryouts;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.StringTokenizer;

public class StringTokenizerTest {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner sc = new Scanner(new FileInputStream("/usr/projects/tryouts/src/tryouts/test.txt"));
        String line = sc.nextLine();
        System.out.println(line);
        StringTokenizer lineTok = new StringTokenizer(line);
        String first = (String) lineTok.nextToken();
        System.out.println(first);
        String last = (String) lineTok.nextToken();
        System.out.println(last);
        sc.close();
    }
}

Создайте файл с именем "test.txt" в папке "/ usr / projects / tryouts / src / tryouts /" с однострочным содержимым как "первый второй третий четвертый "и печатает первый и второй.

...