2015-11-25 2 views
0

Рассмотрим строку переменной pri со значением 07:45:32PM, теперь для того, чтобы получить PM в одиночку я применил,регулярное выражение Java, не может получить значение

pri = pri.replaceAll("[^A-Z]",""); 

Пока все работает нормально, но пытается сравнить стоимость в переменной не работает, то есть:

if(pri=="PM") 
    { 
     hh+=12; 

    } 

Тело цикла не выполняется. Мой вопрос в том, являются ли эти два значения разными, то есть Pri=="PM", почему это так? И как я могу точно проверить мой цикл if? Спасибо

EDIT1

Так что я попытался if(pri.equals("PM")) вместо if(pri=="PM"), но все же это было не решить эту проблему!

+2

use pri.equals ("PM") – Mikey

+0

Ваш код с этим входом работает, как и ожидалось, при использовании 'equals'. Вы должны делать что-то другое, чего вы не показали. – resueman

+1

Для вашей реальной проблемы вы рассмотрели возможность использования чего-то вроде '' new SimpleDateFormat («KK: mm: ssaa») .parse (pri) '] (http://docs.oracle.com/javase/7/docs/api /java/text/SimpleDateFormat.html)? – JimmyB

ответ

1

EDIT: Используйте метод equalsIgnoreCase() для сравнения строк.

if(pri.equalsIgnoreCase("PM")) 
    { 
    hh+=12; 

    } 
+0

У вас есть опечатка в вашем коде: отсутствующий ')' скобка в конце предложения if – Phate01

+0

@ Phate01, вы правы, хорошо поймите. – Perdomoff

+1

Спасибо, это сработало, но почему не работает 'pri.equals (« PM »)? – OBX

1

Вы должны использовать .equals не ==, чтобы сравнить два String объекта.

if(pri.equals("PM")) 
0

Использовать вместо if(pri.equals("PM")).

Смежные вопросы