当前位置: 首页 > 知识库问答 >
问题:

huxley:java.util.NosuChelementException:找不到行

司空和悌
2023-03-14

我在https://www.thehuxley.com上提交答案时遇到了问题。当我在Eclipse上运行代码时,一切正常,但在Huxley上,我得到的是:

Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at HuxleyCode.main(HuxleyCode.java:12)

下面是代码本身:

import java.io.*;
import java.util.*;

public class HuxleyCode {
  public static void main(String args[]) {
    Scanner in = new Scanner(System.in);
    int menor = 0, pos = 0, entradas = 0, temp;

    entradas = in.nextInt();// WATCH OUT THIS LINE
    in = new Scanner(System.in);

    String valores = in.nextLine();

    entradas = 0;
    for (String val : valores.split(" ")) {
        temp = Integer.valueOf(val);

        if (entradas == 0) {
            menor = temp;
        } else if (temp < menor) {
            menor = temp;
            pos = entradas;
        }
        entradas++;
    }

    in.close();
    System.out.println("Menor valor: " + menor);
    System.out.println("Posicao: " + pos);
  }
}

补充一下,在我注释为“Watch OUT THIS line”的行中,如果我删除该行,Scanner忽略nextInt()e跳转到NextLine(),导致以下错误:

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.valueOf(Integer.java:766)
at HuxleyCode.main(HuxleyCode.java:16)

预期的输入是:

10
1 2 3 4 -5 6 7 8 9 10

和输出:

Menor valor: -5
Posicao: 4

共有1个答案

房唯
2023-03-14
entradas = in.nextInt();
String valores ="";
while(in.hasNextLine())
    valores = in.nextLine();

问题是nextint()没有将扫描器的位置设置为下一行的开始,因此第一次调用将返回空字符串。这在这里解释得很清楚...
不能同时使用Scanner.NextInt()和Scanner.NextLine()

需要注意的一件事是,它适用于您,因为您重新初始化了扫描器,从而强制它从下一行开始。但不幸的是,这将无法与赫胥黎一起工作,因为他们以编程方式同时发送输入,并且由于丢失了对第一个扫描器的引用而丢失了所有输入。

下面的也应该起作用

entradas = in.nextInt();
String valores = in.nextLine();//Get empty Str & Set pos of Scanner to beginning of next line
valores = in.nextLine();
 类似资料:
  • 我把我的文件保存在。java文件旁边。 运行: 名称:Koen 得分:44 线程“main”Java.util.nosuchelementException:未找到行 名称:Kevin 得分:55 在Java.util.scanner.nextline(Scanner.Java:1585) 在tetris.fileio.loadHighscores(fileio.Java:41) 在tetris.

  • 我是一名学习使用jsp和Servlet构建Web应用程序的学生。一个月以来,我的Web应用程序项目一直运行良好,但今天它的行为突然变得奇怪了。当我提交jsp页面时,它无法找到我的servlet。我已经使用servlet注释来映射请求。 以下是我的JSP:- 以下是我的servlet:- 以下是我的控制台日志:-

  • 问题内容: 我正在运行Windows 8,但无法使javac正常工作。 我已将环境变量中的PATH设置为 我尝试过是否使用’;’ 但无济于事。 我最近在桌面上添加了这个问题;工作,但不是这种情况。 我确保javac确实也存在于bin中。 关于修复的任何建议将不胜感激。 编辑echo%PATH%给出: 确切的错误是:无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 至

  • 问题内容: 我正在为我的项目使用jersey,并尝试从字符串中解析URI。 代码很简单,但是下面出现错误 看来程序找不到委托。我已经导入了,并且应该在我的构建路径中包含委托。但我仍然会收到此错误。 有人知道如何解决吗?谢谢! 问题答案: 如果您使用的是Maven,请使用以下依赖项: 对于Gradle,以下将起作用:

  • 问题内容: 我只需要重新安装mysql,我就无法启动它。它找不到套接字(mysql.sock)。问题是我也不能。在Mac OS X 10.4终端中,键入:,然后返回。套接字文件存在于该位置是有道理的,但实际上并不存在。 如何找到套接字文件? 如果locate返回错误的位置,则它必须具有某种内存,并且可能具有索引。如何刷新该索引? 问题答案: 回答问题的第一部分: 跑 并检查“ socket”变量

  • 问题内容: 我正在Eclipse 4.3中设置一个Spring 3.2.3 + Hibernate 4项目。 当我将代码添加到上下文中时,我开始在每个bean中收到以下错误: 现在,我在项目中添加了AspectJ Tools和Cglib依赖项,并且JAR在那里,包括它找不到的类。该应用程序正常运行,并且Spring正在成功管理会话和事务。 我一直在寻找解决方案,但每个答案都指出,由于缺少JAR,因