-2

我有一个包含以下元素的堆栈(记录):

first   20130512142202
second  20130512142204
third   20130512142206
fourth  20130512142209
fifth   20130512142212

我想检查是否在堆栈中的其他位置引用了字符串值(让我们说“第二个”)。所以我尝试了:

while(!Records.empty()) {
    String checkRecord=Records.pop().toString();
    if(checkRecord.equals("second")) {
        System.out.println(checkRecord + " found");
    }

    else {
        System.out.println(checkRecord +" not found");
    }
}

System.out.println("END OF STACK");

20130512142204Equals 返回 false,这很好,因为 "second" 与 "second ( )"不完全相同。所以我需要别的东西,我尝试contains()了返回true,但即使有:

string test = "second  20130512142204";
test.contains(rt);

contains() 是实现我需要的正确选择还是应该尝试不同的方法/修改我的代码?当且仅当我给出的字符串是堆栈行的一部分时,我才想得到正确的结果。

4

1 回答 1

0

如果您对从问题中的堆栈示例中查找 String startsWith "second" 特别感兴趣。使用 "".startsWith() 函数

所以代码是

  while(!Records.empty()){
        String checkRecord=Records.pop().toString();

        //True when the current checkRecord string startsWith "second"
        if(checkRecord.startsWith("second"))
        {

            System.out.println(checkRecord + " found");
        }else{
            System.out.println(checkRecord +" not found");
        }
    }
    System.out.println("END OF STACK");

此外,“”.contains() 函数必须与上述代码完全相同。我不明白为什么它对你不起作用。

于 2013-05-12T12:32:47.450 回答