Java 如何只读文件的第一个表达式并移到另一行

Java 如何只读文件的第一个表达式并移到另一行,java,Java,我有一个如下所示的文件: 我需要的是只读第一列的名称并输出它 while (sc.hasNext()) System.out.println(sc.next()); 我尝试的另一个解决方案是: while (sc.hasNextLine()) System.out.println(sc.nextLine()); 上面的那些显然不起作用。我被卡住了,不知道该怎么办。我试图用谷歌搜索我的问题,但找不到答案 while(sc.hasNextLine()) {

我有一个如下所示的文件:

我需要的是只读第一列的名称并输出它

  while (sc.hasNext()) 
     System.out.println(sc.next()); 
我尝试的另一个解决方案是:

  while (sc.hasNextLine()) 
     System.out.println(sc.nextLine()); 
上面的那些显然不起作用。我被卡住了,不知道该怎么办。我试图用谷歌搜索我的问题,但找不到答案

while(sc.hasNextLine()) {
    StringBuilder toPrint = new StringBuilder();
    String line = sc.nextLine();

    for(int i = 0; i < line.length() && line.charAt(i) != ' '; i ++) {
        toPrint.append(line.charAt(i));
    }

    System.out.println(toPrint.toString());
}

我之所以不使用String.split,是因为它会分割整个字符串,而您只需要第一个单词,因此会做很多不必要的工作

将该行读入一个变量,然后在空格str.split\\s+上拆分,并打印您感兴趣的列:您可以使用substring并避免循环?但是您不知道单词有多大。indexOf可以获得第一个空格。这会起作用,但我认为速度会变慢,因为它会在数组中搜索空格,然后子字符串本身很慢,因为它是通过连接工作的,这是一个缓慢的过程。