Hus*_*rah 0 java for-loop substring
我正在尝试制作一个计算器应用程序,我输入的最终方程有一个字符串."983 + 388 + 12"我的解决方法是首先确定运营商的位置.在此之后,我向后和向前循环尝试找到2个数字,然后我添加它们.所以我会找到加号然后是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;
}
}
Run Code Online (Sandbox Code Playgroud)
我没有得到任何返回作为nextNumber的值
当您+在第一个循环中找到时,您不会停止扫描字符串.这导致plus标记最后一个的位置,该位置+在388之后和12之前.第二个循环永远不会找到+或-在最后一个之后+,因此没有打印任何内容.当你找到第一个+,break出了循环.
此外,为避免38被发现,请更正您的substring呼叫,其中结尾索引是独占的.
String nextNumber = string.substring(plus + 1, i);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |