2016-07-15 2 views
1

Обе строки кажутся то же самое, при выводе на консоль, но не тогда, когда по сравнению с использованием «==»Regex Capture не равен String, равный

Что я делаю неправильно здесь?

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

Вы можете прочитать больше о String сравнений в this question.

+0

Так просто. спасибо – HappyPoofySquirrel