假设我有一个字符串 3 + 4 = 7
或 23 - 4 = 19
。我想知道如何从字符串中获取最后一个整数,以便将其与另一个整数进行比较。
我使用了这段代码:
int first = Integer.parseInt(str.substring(0, str.indexOf(" ")));
int second = Integer.parseInt(result.substring(result.indexOf('+')+1 , result.indexOf('=')));
获取第一个和第二个整数进行计算,但是当我使用上述方法时,我似乎无法获取字符串中的最后一个整数。这只是我做错了什么,还是我需要做其他事情?
我也不能使用数组、正则表达式、try/catch 或 SystemTokenizer。
而且我的字符串不会总是采用带有空格或单个数字整数的 a + b = c 格式。 这些字符串取自扫描仪导入的文本文件。以下是文件中方程式的示例:
11 - 2 = 9
12 - 1 = 11
7 + 1 = 8
7 - 3 = 4
7 + 2 = 9
14 + 4 = 18
最佳答案
如果你所有的字符串都是这种格式 - a + b = c
,那么有一个简单的方法 -
String[] parts = str.split("=");
String lastDigit = parts[parts.length - 1].trim();
int last = Integer.parseInt(lastDigit);
查看 docs .
更新
根据您不想使用正则表达式的要求,您可以这样做 -
public int getLastDigit(String expression) {
StringBuffer result = new StringBuffer();
for (int i = expression.length() - 1; i >= 0; i--) {
char c = expression.charAt(i);
if (c == '=') {
break;
}
else {
result.append(c);
}
}
return Integer.parseInt(result.reverse()
.toString()
.trim());
}
int last = getLastDigit("1 + 3 = 14");
System.out.println(last); // will print 14
关于java - 从字符串中获取最后一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137247/