2016-07-15 82 views
1

两个字符串出现时打印到控制台是相同的,但不能相比使用“==”正则表达式捕获不等于同等价值的字符串

我到底做错了什么?

String message = "Rejected | Ref ID: CaptureMe | Name:"; 

Pattern pattern = Pattern.compile("\\bRef ID:\\s+(\\S+)");  

Matcher matcher = pattern.matcher(message); 

String matchedRef = matcher.group(1); 
System.out.print(matchedRef);  

打印:CaptureMe

String myRef = "CaptureMe"; 

if(matchedRef == myRef){ 
System.out.print(true); 
} 
else{ 
System.out.print(false); 
} 

打印:FALSE

+1

将'matchedRef == myRef'改为'matchedRef.equals(myRef)' – anubhava

回答

2

比较字符串,你需要使用equals()方法,而不是==操作。

if(matchedRef.equals(myRef)){ 
    System.out.print(true); 
} 
else{ 
    System.out.print(false); 
} 

您可以在this question阅读更多关于String比较。

+0

这么简单。谢谢 – HappyPoofySquirrel