java - 从字符串中获取最后一个整数

标签 java string integer

假设我有一个字符串 3 + 4 = 723 - 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/

相关文章:

Java 大整数

c++ - 如何从 int 转换为 char*?

indexing - 使用带有 float 的 Pandas reindex : interpolation

java - 连接android时socket.io发送一些数据到服务器

Java泛型——寻找一种方法来告诉我泛型类型的父类(super class)型

java - 以不区分大小写的方式将 List<String> 转换为 Set-Java 6

javascript - 在查找字符串中字符出现的频率时,此语法的确切含义是什么?

java - 如何将 JSON 字符串转换为字符串数组?

java - 使用 Swing 将工具栏添加到框架

java - 在 Java 中将 XML 文档复制到字符串变量中