java循环输出中不需要的重复

Jit*_*Jit 2 java arrays string loops

我正在编写一个代码来重塑信号.我得到了不必要的重复输出.

INPUT:

String [] rani = {"A","1","2","OK","B","3","4","OK","B","1","3", "好"};

要求的输出:

A/3 B/7 B/4

得到了输出:

A/3 A/3 A/3 A/3 B/7 B/7 B/7 B/7 B/4


算法:单字母串("A","B"等)后面跟着数字串("1","2"等).每个字母表字符串后跟斜杠和数字的总和,字符串"OK"将被忽略.

作为java和编程的新手,我需要帮助才能获得所需的输出.

我的代码是:

public class SignalOK {

    public static void main(String[] arg) {
        String finalSignal = "";
        String netSignal = "";
        String name = "";
        int total = 0;
        String[] rani = { "A", "1", "2", "OK", "B", "3", "4", "OK", "B", "1",
                "3", "OK" };

        for (int i = 0; i < rani.length; i++) {

            if ((rani[i] == "A") || (rani[i] == "B")) {

                name = rani[i];
            }

            if ((rani[i] == "1") || (rani[i] == "2") || (rani[i] == "3")
                    || (rani[i] == "4")) {

                total = total + Integer.valueOf(rani[i]);
            }

            if (rani[i] == "OK") {

                netSignal = name + "/" + String.valueOf(total) + "   ";
                name = "";
                total = 0;
            }
            finalSignal = finalSignal + netSignal;
        }

        System.out.println(finalSignal);
    }
}
Run Code Online (Sandbox Code Playgroud)

Kep*_*pil 6

只需在"OK"if括号内移动最终结果字符串连接:

if (rani[i].equals("OK")) {
    netSignal = name + "/" + String.valueOf(total) + "   ";
    name = "";
    total = 0;   
    finalSignal = finalSignal + netSignal;
}
Run Code Online (Sandbox Code Playgroud)

此外,始终用于.equals()比较字符串.