java - 处理包含数学操作数的 Java 字符串

标签 java string operators

处理包含数学操作数的 Java 字符串。

我正在修改控制信号的代码。我必须转换这种字符串:

String str=    "Red 0.20 + 0.60 Green 0.30 + 0.45 + 0.56 Blue 0.25 + 0.50 + 1.0 Yellow 3.0/2.0 ";

为此:

String str1= "RedNet0.8 GreenNet0.75   BlueNet1.75 YellowNet1.5 ";

我可以将 Red 替换为 RedNet,将 Green 替换为 GreenNet 等,但请帮助我继续完成剩余部分。

最佳答案

解决方案的伪代码:

String[] tokens = input.split(" ");
int index = 0;

while(index < tokens.length) {
    String colorName = tokens[index++];
    Decimal colorValue = parseNumber(tokens[index++]); // Use some appropriate decimal datatype here

    while(true) {
        String operator = tokens[index];
        if (operator is neither "+", "-" nor any of the other operators) {
            break;
        }
        index++;
        switch(tokens[index++]) {
            case "+":
                colorValue += parseNumber(tokens[index++]);
                break;
            case "-":
                colorValue -= parseNumber(tokens[index++]);
                break;
            ... and so on for all operators ...
        }
    }

    output colorName + "Net" + colorValue + " ";
}

关于java - 处理包含数学操作数的 Java 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24115211/

相关文章:

当计数器达到某个点时Java中断for循环

java - Spring servlet 映射——没有 css 或 jsp!

java - 在 TreeMap 中搜索 (Java)

java - 将以下字符串解析为年、月、日、小时、分钟、秒

ActionScript 日期比较

java - 使用 String Buffer 时如何解决 Java 堆空间错误?

c - 在没有指针的情况下返回 C 中的字符串?

Java Array Char 和 String 数组中的区别

c# - 是否可以从 C# 4.0 中的列表应用数学运算

ios - 如何在函数中将运算符作为参数传递?