gpt4 book ai didi

java - 取一个字符串并将其分为 2 个数字和一个运算符

转载 作者:行者123 更新时间:2023-12-02 10:00:23 25 4
gpt4 key购买 nike

我正在尝试做一个项目,用户输入一个简单的数学问题(如 14 + 3),程序将执行某些操作(无关)。对于那个“东西”,我需要第一个数字和第二个数字作为两个不同的整数,以及运算符作为字符。所以我尝试了这段代码:

String str = "";
str = scan.next();
str.replaceAll(" ","");

int ans = 0;
int len = str.length();
int pos = 0;

String str1 = "";
char opr = ' ';
String str2 = "";

int i;
for (i = 0 ; i < len ; i++)
{
if (str.charAt(i) <= '9' && str.charAt(i) >= '0')
{
pos = i;
str1 = str1 + str.charAt(i);
}
else
break;
}

opr = str.charAt(i);

for (int j = i + 1 ; j < len - i ; i++)
{
if (str.charAt(i) <= '9' && str.charAt(i) >= '0')
str2 = str2 + str.charAt(i);
}

int n1 = Integer.parseInt(str1);
int n2 = Integer.parseInt(str2);

我遇到这个问题:线程“main”中的异常 java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:java.lang.String.charAt 处的 2(来源未知)

谁能解释一下我的代码有什么问题吗?顺便说一句,我对 java 很陌生,对 c++ 更熟悉。

最佳答案

我正在使用正则表达式为您的根本原因提供解决方案。

    String s="3*4+5";
String s1[]=s.split("[[+]-[*]/]");//put all the required symbols
System.out.println(s1[0]);//prints 3
System.out.println(s1[1]);//prints 4
System.out.println(s1[2]);//prints 5

注意:“+”和“*”是特殊的正则表达式符号,因此我将它们括在“[]”中。

关于java - 取一个字符串并将其分为 2 个数字和一个运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55674816/

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