java - 如何在没有 if 的情况下从字符串操作 a [sign] b 转换。

标签 java string integer character-arrays

代码根据表达式 a [sign] b 计算结果。 可能的操作:+ - *。我可以在不使用条件 if 的情况下解决这个练习吗?

  String result =  "3 + 6 = ";
   String result = outputStream.toString();
        String[] resultArray = result.split(" ");
        Integer first = Integer.parseInt(resultArray[0]);
        Integer second = Integer.parseInt(resultArray[2]);
        String opp = resultArray[1];

        if("+".equals(opp)){
            System.out.println(String.format("%d %s %d = %d", first, opp, second, first + second));
        }
        else if("-".equals(opp)){
            System.out.println(String.format("%d %s %d = %d", first, opp, second, first - second));
        }
        else if("*".equals(opp)){
            System.out.println(String.format("%d %s %d = %d", first, opp, second, first * second));
        }

最佳答案

另一种方法是使用 switch-case:

    switch (opp.charAt(0)) {
    case '+':
        System.out.println(String.format("%d %s %d = %d", first, opp,
                second, first + second));
        break;
    case '-':
        System.out.println(String.format("%d %s %d = %d", first, opp,
                second, first - second));
        break;
    case '*':
        System.out.println(String.format("%d %s %d = %d", first, opp,
                second, first * second));
        break;
    }

关于java - 如何在没有 if 的情况下从字符串操作 a [sign] b 转换。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21509969/

相关文章:

java - 枚举中的可配置值

无法通过将鼠标移开来取消 JavaFX MenuItem

java - 由 : java. 引起 lang.NoClassDefFoundError: [Lorg/hibernate/engine/FilterDefinition;

c# - 无法从 'string' 转换为 'system.collections.generic.list string'

java - 在 Java 中将 long 转换为 byte

c++ - 测试字符串以查看是否存在数字并将值分配给变量同时跳过所有非数字值?

java - 使用 JCA 高效检查大型数据集的签名

c++ - 如何检查字母表中的字母在文本文件中出现了多少次 C++

java - 如何在 Android 中使用 Java 代码在 string.xml 中添加字符串?

PHP 在 1 个变量中存储多个整数变量?