有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java等于或包含方法?

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

first   20130512142202
second  20130512142204
third   20130512142206
fourth  20130512142209
fifth   20130512142212

我想检查字符串值(比如说“second”)是否在堆栈中的其他地方引用。 所以我试着:

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");

Equals返回false,这很好,因为“second”与“second(20130512142204)”不完全相同。所以我需要一些其他的东西,我尝试了contains(),它返回true,但返回true,即使:

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

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


共 (1) 个答案

  1. # 1 楼答案

    如果您特别有兴趣从问题中的堆栈示例中查找以“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()函数必须执行与上述代码完全相同的操作。我不明白为什么它对你不起作用