1

我有一个包含以下对象的堆栈:

barcode \t date \t some_action

例如 :

IP400H24 \t 20130527163520 \t in

日期格式为 yyyymmddhhmmss

我想获取堆栈的第一个元素并搜索堆栈,直到我第一次找到另一个具有相同条形码的对象。

我正在尝试一些东西,但它不正确:

// Get the barcode from the first object
String line = lifo.pop().toString().split("\t);
String barcode = line[0];
// Search for that barcode

while(!lifo.empty()) {
    String next_line = lifo.pop().toString().split("\t);
    String next_barcode = next_line[0];

    if (next_barcode.equals(barcode))
        //FOUND IT
    else
        //NOT FOUND
}

那有什么问题?

你是对的..我宣布这句话错了..我可能需要休息一下..谢谢你的回答...

4

1 回答 1

1

使用正则表达式匹配

试试这个正则表达式:

IP400H24 \\t \d+ \\t [a-z]+

您可以使用连接IP400H24替换:barcode

String matcher = barcode += "\\t \d+ \\t [a-z]+";

您可以将其与 一起使用next_line.matches(),例如:

if(next_line.matches(barcode + "\\t \d+ \\t [a-z]+")) {

}

相关错误

请注意,检索该行时出错:

String line = lifo.pop().toString().split("\t);

应该

String line = lifo.pop().toString().split("\\t");
于 2013-05-27T13:46:45.383 回答