当我使用scanner sc.nextDouble()时为什么会得到InputMismatchException

时间:2015-05-06 15:12:18

标签: java java.util.scanner inputmismatchexception

我想从java.lang.ClassNotFoundException: client_sock.Client at java.net.URLClassLoader$1.run(URLClassLoader.java:372) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:360) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:340) at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:626) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) at server_sock.Conexiune.run(Server_Sock.java:189) 文件中读取数据,但是当我调用txt方法时,我得到InputMismatchException。即使我使用的是nextDouble()方法,但它也无法使用。

txt文件的第一行是:useLocale

1;forname;1.9

1 个答案:

答案 0 :(得分:1)

归咎于法语区域设置:它使用逗号作为小数分隔符,因此1.9无法解析。

1.9替换1,9可解决问题(demo 1)。如果您要解析1.9,请使用Locale.US代替Locale.FRENCHdemo 2)。

代码中的第二个问题是使用\\n作为分隔符。您应该使用单个反斜杠,否则包含n的单词会破坏您的解析逻辑。