2013-10-28 8 views
1

Я пытаюсь проверить, соответствует ли строка в алфавитном порядке между двумя другими строками. На данный момент я делаю это так:Сравнение строк Сравнение в java

if(_subSize.compareTo("440/65") > 0 && "600/65".compareTo(_subSize) < 0){ 
    //fits in 
} else { // fits not in between } 

Но когда у меня есть, как _subSize = «440/65»; оператор if получает в else. Я исправил это следующим образом:

if(_subSize.compareTo("440/65") >= 0 && "600/65".compareTo(_subSize) <= 0){ 
    //fits in 
} else { // fits not in between } 

Теперь первое утверждение верно. Однако второе утверждение неверно. Как получить второе утверждение как истинное? как «440/65» в алфавитном порядке перед «600/65», поэтому технически он должен быть ниже или равен 0. Но почему-то это не работает.

И мне нужны строки как строки. Они не цифры или что-то еще.

+5

, который является правильным по алфавиту или alfabetically – SpringLearner

+3

Попробуйте использовать '«600/65».compareTo (_subSize)> = 0 'вместо этого. Хотя я должен признать, что это худший вид сравнения дальности, который я когда-либо видел. – SudoRahul

+0

@ R.J Я думаю, вы дали правильный ответ. – Tarik

ответ

3

Второй .compareTo() инвертирован, связанный с первым. Вам просто нужно иметь и сравнить с той же точки зрения следующим образом:

if(_subSize.compareTo("440/65") >= 0 && _subSize.compareTo("600/65") <= 0){ 
    //fits in 
} else { // fits not in between } 
+0

Это сделало работу, спасибо человеку :)! – Baklap4