Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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 - Fatal编程技术网

Java计算器正在崩溃

Java计算器正在崩溃,java,Java,我正在制作这个非常酷的计算器应用程序。除了一件事,一切都正常。当用户按下一个无效的等式,例如1+,或5-,它就会崩溃。我的意思是我的崩溃是:当它说,对不起,计算器已经停止。我试着把它修好,但没用 爪哇: 这是我为解决问题而添加的一行:(但是,不起作用) 我是Java编程的初学者。我使用的是Android Studio。我猜您没有包含确切的错误,但是如果您的输入是1+,那么 retVal = expr.split("\\+"); 将返回一个字符串(不是两个),这意味着 retVal[1].le

我正在制作这个非常酷的计算器应用程序。除了一件事,一切都正常。当用户按下一个无效的等式,例如1+,或5-,它就会崩溃。我的意思是我的崩溃是:当它说,对不起,计算器已经停止。我试着把它修好,但没用

爪哇:

这是我为解决问题而添加的一行:(但是,不起作用)


我是Java编程的初学者。我使用的是Android Studio。

我猜您没有包含确切的错误,但是如果您的输入是
1+
,那么

retVal = expr.split("\\+");
将返回一个字符串(不是两个),这意味着

 retVal[1].length()
将导致异常,因为
retVal[1]
不存在

为避免此错误,在调用
split()
后,应检查
retval
,查看它是否包含两个元素。如果没有,那么告诉你的用户他们的等式是无效的。比如说,

 if (retVal.length != 2) {
     // Tell the user ...
 }

我猜您没有包含确切的错误,但是如果您的输入是
1+
,那么

retVal = expr.split("\\+");
将返回一个字符串(不是两个),这意味着

 retVal[1].length()
将导致异常,因为
retVal[1]
不存在

为避免此错误,在调用
split()
后,应检查
retval
,查看它是否包含两个元素。如果没有,那么告诉你的用户他们的等式是无效的。比如说,

 if (retVal.length != 2) {
     // Tell the user ...
 }

你说“撞车”是什么意思?你有例外吗?堆栈跟踪?请在您的问题中包含这些内容,以便我们可以帮助您解决问题。此外,请先在
retVal=expr.split(…)
之后检查是否有2个条目;如果未拆分为2个(或更多)条目,则
retVal[1]
将无效。例如
if(retVal.length<2){//do error}
错误日志中有一些故障排除说明,可能是
ArrayIndexOutOfBoundsException
以及发生故障的代码行号。然后,你会在那里设置一个断点,调试应用程序,并意识到
retVal
在拆分后只有一个元素。“请尽快帮助我…”不。我正在努力帮助具有更好时间管理技能的人。如果你需要紧急帮助,你对我来说已经太晚了。当你说“崩溃”时,你是什么意思?你有例外吗?堆栈跟踪?请在您的问题中包含这些内容,以便我们可以帮助您解决问题。此外,请先在
retVal=expr.split(…)
之后检查是否有2个条目;如果未拆分为2个(或更多)条目,则
retVal[1]
将无效。例如
if(retVal.length<2){//do error}
错误日志中有一些故障排除说明,可能是
ArrayIndexOutOfBoundsException
以及发生故障的代码行号。然后,你会在那里设置一个断点,调试应用程序,并意识到
retVal
在拆分后只有一个元素。“请尽快帮助我…”不。我正在努力帮助具有更好时间管理技能的人。如果你需要紧急帮助,你对我来说已经太晚了。那我该怎么做呢?你能给我代码吗?数组有一个
length
属性,如
retVal.length
中的属性。用它来检查分割后的元素数量。那么我该怎么做呢?你能给我代码吗?数组有一个
length
属性,如
retVal.length
中的属性。使用该选项检查拆分后的元素数。