首页 > 解决方案 > StringTokenizer 错误:标记化行完成后出现 NoSuchelementException

问题描述

当我从键盘输入标记器一行时,它没有问题。但是,我试图通过一个名称在两个单词之间有空格的文件行来提供我的输入。那是我收到 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();

标签: javastringtokenizer

解决方案


这对我来说可以。

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();
    }
}

在文件夹“/usr/projects/tryouts/src/tryouts/”中创建一个名为“test.txt”的文件,其中一行内容为“first second third Fourth”,并打印第一和第二。


推荐阅读