不断获取:线程中的异常“;“主要”;java.util.NoSuchElementException

不断获取:线程中的异常“;“主要”;java.util.NoSuchElementException,java,switch-statement,Java,Switch Statement,嗨,我还是java新手,我正在尝试制作这个程序来计算汇率。有一个问题我似乎无法解决。我一直收到这样一条消息:线程“main”java.util.NoSuchElementException中的异常。谁能帮帮我吗。我试图读取文本文件中的一个数字和一个单词 您有一个调用sc.hasNext()和两个连续调用sc.next() 当第一个调用读取了最后一个元素时,第二个调用显然会导致异常 您调用扫描仪。接下来快速连续两次-一次设置变量s,第二次设置变量s1。如果没有其他字符串可读取,您将得到一个NoSu

嗨,我还是java新手,我正在尝试制作这个程序来计算汇率。有一个问题我似乎无法解决。我一直收到这样一条消息:线程“main”java.util.NoSuchElementException中的异常。谁能帮帮我吗。我试图读取文本文件中的一个数字和一个单词


您有一个调用
sc.hasNext()
和两个连续调用
sc.next()


当第一个调用读取了最后一个元素时,第二个调用显然会导致异常

您调用
扫描仪。接下来
快速连续两次-一次设置变量
s
,第二次设置变量
s1
。如果没有其他字符串可读取,您将得到一个
NoSuchElementException
,如的JavaDoc中所述

看起来您没有使用第二个变量,因此请将其删除或使用一个变量进行保护。

使用以下变量:

String s = sc.next();
double geld = Double.parseDouble(s);

谢谢,第一部分现在可以用了。现在我可以和其他人一起继续了


您在哪一行收到异常?
String s = sc.next();
String s1 = sc.next();
String s = sc.next();
double geld = Double.parseDouble(s);
    import java.util.*;
import java.io.*;

public class Main {
 public static void main(String[] arg) throws IOException {
 File f = new File("test.txt");
 if (f.exists() && f.isFile()) {
 Scanner sc = new Scanner(f);
sc.useDelimiter("\\s* \\s*");
while (sc.hasNext()) {
 String s = sc.next();

     s = s.replace("$", "Dollar");
     s = s.replace("E", "Euro");
     s = s.replace("Y", "Yen");
     s = s.replace("B", "British Pound");
     s = s.replace("O", "Ore");


System.out.println(sc.next() +" "+ s);

}
sc.close();
}}
}