gpt4 book ai didi

java - 从 a a + b + c = d 字符串中取出第三个数字

转载 作者:行者123 更新时间:2023-12-01 13:47:44 24 4
gpt4 key购买 nike

我的意思是,如果我有一个诸如 23 + 4 + 13 = 40123 - 100 + 245 = 268 的字符串,我将如何获得第三个( c) 部分脱离字符串?在示例中,我想获取 13245 来使用。

我该怎么做?

这是迄今为止我从问题中获取第一个数字、运算符、第二个数字和答案的代码,但我不确定如何获取第三个数字。

int first = Integer.parseInt(fileContent.substring(0, fileContent.indexOf(" ")));
char operator = getOperator(fileContent);
int second = secondNumber(result, fileContent);
int last = Integer.parseInt(result.substring(result.indexOf("=") + 1));

我不能为此使用数组、正则表达式、try/catch 或 systemTokenizers。

更新:这是我必须做的一个实验室,但我不能使用任何这些东西,因为它是一门“入门”类(class),我们还不应该了解它们。非常不方便。

这是我的 getOperator 方法

public static char getOperator(String fileContent){


int checkAdd = fileContent.indexOf('+');
int checkMinus = fileContent.indexOf('-');
int checkMulti = fileContent.indexOf('*');
int checkDivi = fileContent.indexOf('/');

if (checkAdd != -1){
char operator = fileContent.charAt(fileContent.indexOf('+'));
return operator;
}
else if (checkMinus != -1) {
char operator = fileContent.charAt(fileContent.indexOf('-'));
return operator;
}
else if (checkMulti != -1) {
char operator = fileContent.charAt(fileContent.indexOf('*'));
return operator;
}
else if (checkDivi != -1){
char operator = fileContent.charAt(fileContent.indexOf('/'));
return operator;
}
return ' ';

这是我的 SecondNumber 方法:

public static double secondNumber(String result, String opContent){

int checkAdd = opContent.indexOf('+');
int checkMinus = opContent.indexOf('-');
int checkMulti = opContent.indexOf('*');
int checkDivi = opContent.indexOf('/');

if (checkAdd != -1){
return Double.parseDouble(result.substring(result.indexOf('+')+1 , result.indexOf('=')));
}
else if (checkMinus != -1) {
return Double.parseDouble(result.substring(result.indexOf('-')+1 , result.indexOf('=')));
}
else if (checkMulti != -1) {
return Double.parseDouble(result.substring(result.indexOf('*')+1 , result.indexOf('=')));
}
else if (checkDivi != -1){
return Double.parseDouble(result.substring(result.indexOf('/')+1 , result.indexOf('=')));
}
return 0;
}

结果来自此方法:

public static String removeSpaces(String content){
String result = content.replace(" ","");
return result;
}

最佳答案

执行此操作的一个好方法(在您的限制范围内)是使用 String.indexOf overload它需要一个 fromIndex 和一个执行类似操作的方法,但对于运算符来说:

public static int getNextOperatorIndex(String fileContent, int startIndex)
{
for (int i = startIndex; i < fileContent.length(); i++)
{
if (fileContent.charAt(i) == '+' ||
fileContent.charAt(i) == '-' ||
fileContent.charAt(i) == '*' ||
fileContent.charAt(i) == '/')
return i;
}
return -1;
}

通过这两种方法,您可以获得将字符串分开的索引:

int firstOperatorIndex = getNextOperatorIndex(fileContent, 0);
int secondOperatorIndex = getNextOperatorIndex(fileContent,firstOperatorIndex+1);
int equalsIndex = fileContent.indexOf("=", secondOperatorIndex);

由于这是家庭作业,所以我将最后一部分留给您:

//TODO: get a, b, c, d, and both operators based on those indexes

您可以使用String.trim()replace(例如fileContent = fileContent.replace("", "");)以更轻松地消除空格。

关于java - 从 a a + b + c = d 字符串中取出第三个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20229480/

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