Что я имею в виду, если у меня есть строка, такая как 23 + 4 + 13 = 40
или 123 - 100 + 245 = 268
, как бы получить третью часть (c) из строки? В случае примеров я хочу получить 13
или 245
для использования.Вытягивание третьего номера из строки a + b + c = d
Как мне это сделать?
Вот код, который я до сих пор получил, чтобы получить первое число, оператор, второе число и ответить на проблемы, но я не уверен, как получить третье число.
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 для этого.
Обновление: Это для лаборатории, которую я должен делать, но я не могу использовать ни одну из этих вещей, потому что она должна быть «вводным» курсом, и мы еще не должны знать о них. Очень неудобно.
Это мой метод 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 ' ';
и это мой метод второе число:
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;
}
Вы можете использовать «Сканер»? – kiruwka
У вас есть конечный список всех возможных операторов (например, +, -, /, * и т. Д.)? если да, вы можете использовать регулярное выражение для разграничения строки в массив (список) конечным списком операторов. – amphibient
Почему вы не можете использовать регулярные выражения или токенизаторы? это домашнее задание? – k2col