false
正如你所看到的,我的问题是我有两个字符串,我正在比较,如果我尝试没有空格它可以工作,但当我尝试空格时,它没有。这是为什么?
stacktraces print&正如你所看到的,它们是完全相同的,在我的代码中我出错了吗?
public ArrayList<String> toTradeArray = new ArrayList<String>();
public String lastTraded = null;
public String needsTraded = null;
public String[] toTrade = new String[toTradeArray.size()];
public void checkTrades() {
if(s.getTrade().getLastRequestingPlayer() != null) {
lastTraded = s.getTrade().getLastRequestingPlayer().getName();
}
toTrade = toTradeArray.toArray(toTrade);
for (String i : toTrade) {
if(lastTraded != null) {
s.log("Last Traded: "+lastTraded.toLowerCase());
s.log("We need: "+i.toLowerCase());
if(i.toLowerCase().equals(lastTraded.toLowerCase())) {
s.log("Correct Player Traded");
needsTraded = i.toLowerCase();
}
}
}
}
答案 0 :(得分:0)
如果空格只是前导或尾随字符串,则可以使用trim。如果您只想忽略字符串中的任何空格,可以使用正则表达式来删除它们。例如:
String abcd0 = " ABCD\n\t";
String abcd1 = " Ab c\t d\n";
String abcd2 = "aBcD";
System.out.println(abcd2.equalsIgnoreCase(abcd0.trim())); // true
System.out.println(abcd2.equalsIgnoreCase(abcd1.replaceAll("\\s+", ""))); // true
PS:您可以使用equalsIgnoreCase()而不是将两个字符串转换为小写,以达到简洁的目的。