【发布时间】:2013-05-06 14:51:28
【问题描述】:
我有一个包含以下元素的堆栈(记录):
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");
Equals 返回 false,这很好,因为“second”与“second (20130512142204)”并不完全相同。所以我需要别的东西,我尝试了contains(),它返回 true,但即使返回 true:
string test = "second 20130512142204";
test.contains(rt);
contains() 是实现我需要的正确选择还是应该尝试不同的方法/修改我的代码? 当且仅当我给出的字符串是堆栈行的一部分时,我才想得到正确的结果。
【问题讨论】:
-
这两种方法都在做它们应该做的事情。你能详细说明你到底需要什么吗?发布一些示例和预期输出..
-
你不能用地图代替吗?看起来您的数据结构是一组对。然后您可以轻松访问值/键
-
是的...这两种方法的作用完全相同。 StartWith 可以是一个选项,但我仍然认为您应该给我更多更好的示例,以便为您提供正确的答案。