【发布时间】:2014-10-29 21:50:55
【问题描述】:
跟进this Q&A。
目的是匹配一个String,通过以下方法返回:
public String getAssignment() {
return (String) hashmap.get("assignment");
}
尝试
如下:
String s = "12345";
System.out.println(s.matches("12345"));
结果是一场比赛,想法是:
System.out.println(assignment.getAssignment());
System.out.println(assignment.getAssignment().length());
System.out.println(assignment.getAssignment().matches("11111"));
System.out.println(assignment.getAssignment().equals("11111"));
System.out.println(assignment.getAssignment().trim().length());
也应该返回true。
结果
System.out 11111
System.out 15
System.out false
System.out false
System.out 13
【问题讨论】:
-
为我工作。你能做一个可复制的例子吗?
-
@aruisdante 是的,
11111根据 System.out 返回 -
assignment.getAssignment()的返回值很可能包含一些在sout中不可见的whitespace,但在没有这些空格的情况下会使字符串与11111不匹配。使用调试器并检查assignment.getAssignment()的返回值或检查字符串的length。 -
@user2336315 我应该包含 HashMap 吗?
-
如果您只是想检查一个值是否等于 到某个常数,请使用
.equals()。.matches()用于正则表达式匹配,这对于检查简单的字符串文字是不必要的。