gpt4 book ai didi

java - 无法在for循环中找到Java子字符串

转载 作者:行者123 更新时间:2023-12-01 07:52:42 27 4
gpt4 key购买 nike

我正在尝试制作一个计算器应用程序,并且我有一个用于输入最终方程的字符串。“983+388+12”我的解决方法是首先确定运算符(operator)在哪里。之后,我前后循环尝试找到这两个数字,然后将它们相加。所以我会找到加号然后983和388并将它们相加。我无法匹配与添加符号相关的上一个/下一个数字。

public static void main(String[] args)
{
int plus=0;
String string="983+388+12";

//locating Plus symbol
for(int i=0;i<string.length();i++)
{
if(string.charAt(i)=='+')
{
plus=i;
}
}

//locating next number (should be 388)
for(int i=plus+1;i<string.length();i++)
{
if(string.charAt(i)=='+' || string.charAt(i)=='-')
{
String nextNumber=string.substring(plus+1, i-1);
System.out.println(nextNumber);
break;
}
}

我没有收到任何作为 nextNumber 值返回的内容

最佳答案

当您在第一个循环中找到 + 时,您不会停止扫描字符串。这会导致 plus 标记最后一个 + 的位置,即 388 之后、12 之前。第二个循环永远找不到 +或最后一个 + 之后的 -,因此不会打印任何内容。当找到第一个 + 时,break 跳出循环。

此外,为了避免只找到 38,请更正您的 substring 调用,其中结束索引是独占

String nextNumber = string.substring(plus + 1, i);

关于java - 无法在for循环中找到Java子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com