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)
只需在"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()比较字符串.