Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “线程中的异常”;主要的;,这是什么意思?_Java_Exception_Runtime Error - Fatal编程技术网

Java “线程中的异常”;主要的;,这是什么意思?

Java “线程中的异常”;主要的;,这是什么意思?,java,exception,runtime-error,Java,Exception,Runtime Error,我正在为课堂做一道家庭作业。你必须计算两点之间的距离。代码基本完成了,但我有一个问题。当我输入q结束循环时。我收到回信了 线程“main”java.lang.NumberFormatException中的异常:对于输入字符串:“q” at.sun.misc.FloatingDecimal.readJavaFormatString(未知源) 位于java.lang.Double.parseDouble(未知源代码) main(Distance.java:11) 这就是我写的代码。感谢您的帮助。表示

我正在为课堂做一道家庭作业。你必须计算两点之间的距离。代码基本完成了,但我有一个问题。当我输入q结束循环时。我收到回信了

线程“main”java.lang.NumberFormatException中的异常:对于输入字符串:“q”

at.sun.misc.FloatingDecimal.readJavaFormatString(未知源)

位于java.lang.Double.parseDouble(未知源代码)

main(Distance.java:11)


这就是我写的代码。感谢您的帮助。

表示“q”不是数字。要比较字符串,您必须使用
equals
==
只比较引用。

这个老字眼

您不能使用
=
安全地比较字符串。改用
.equals()

if (x1String.equals("q")) // change every == to .equals()



爪哇!=Javascript

您不需要与==进行字符串比较。“==”比较检查它们是否是完全相同的对象,而不是字符串是否包含相同的字符。请尝试使用
x1String.equals(“q”)

现在发生的事情是,“==”会说“这不是同一个对象”,然后它会尝试在下一行将“q”解析为双精度,这将引发异常。

x1String==“q”
只是比较引用。为了将输入字符串与字符串
“q”
进行比较,需要使用
compareTo
equals

if (x1String.compareTo("q") == 0)
// or
if (x1String.equals("q"))

正如其他人所说,您应该使用
equals
等函数来比较对象的内容(
x1String
“q”
),而不是比较实际对象/引用,但是,您还应该检查字符串是否为数字和/或
catch
ing
parseDouble
引发的任何异常

如果有人输入
“asdfg”
,该怎么办

if (x1String.compareTo("q") == 0)
// or
if (x1String.equals("q"))