我的数据格式将是“#9#0000075”。

如何删除“#9”并以“#0”和下一个值开头。如何在“#0”之前获取计数。

有关信息:“#9”有时不仅是3个字符,可能更多或更少。但肯定需要以“#0”开头。

StringBuilder gate = new StringBuilder();
int count = 1;
String header = "";
String oldHeader = "";

public void processRawPacket(int i) throws Exception {
    try {
        gate.append((char) i);
        oldHeader = gate.toString();

        for (int index = 0; index <= oldHeader.length(); index++) {
            if (oldHeader == "#0") {
                gate.append(oldHeader);
            }
            index++;
        }
        process = false;
    } catch (Exception e) {
        out.println(expMsg + "processRawPacket(i): " + e);
        e.printStackTrace();
        StringWriter stack = new StringWriter();
        e.printStackTrace(new PrintWriter(stack));
        out.println("Caught exception packet; decorating with appropriate status template : " + stack.toString());

        resetPacket();
    }
}

最佳答案

字符串比较可能存在问题。运算符==供参考比较。要比较两个字符串,请使用.equals()方法。
正是这段代码

if (oldHeader == "#0") {
    gate.append(oldHeader);
}


应该

if("#0".equals(oldHeader)) {
    gate.append(oldHeader);
}

关于java - 找到“#0”后如何追加长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43448591/

10-09 06:54