Что происходит не так с моей строкой java equals?

#java

#java

Вопрос:

Приведенный ниже код выводит No succes: 01 , и я не знаю почему. Я уже несколько часов ломаю голову над этим…

 //responseStr is {"theme":"01"}
String[] parts = responseStr.split(":");
parts[1] = parts[1].replace(""", "");

if (parts[1].equals(01)){
    Log.v(TAG, "Success");
} else {
    Log.v(TAG, "No success: "   parts[1]);
}
 

Видимо, я действительно тупой. Следовало бы добавить и это parts[1] = parts[1].replace("}", "");

Комментарии:

1. Двойные кавычки вокруг 01 ?

2. Либо измените части [1] на целое число, либо 01 на строку.

3. Я отредактировал вопрос с помощью решения. Теперь я чувствую себя таким глупым.

4. ИМХО, лучше вообще убрать вопрос. Я не думаю, что кто-то еще получит от этого какую-либо выгоду.

5. Я не могу, так как на него уже был дан ответ.

Ответ №1:

parts[i] является экземпляром String , 01 является объектом Integer , поэтому они не являются equal

Комментарии:

1. кроме того, части[1] будут равны 1, где в 01 = 1. Целые числа не переносят вперед 0.

2. Вы можете проверить стоимость деталей, а затем на основе этого решить, с чем сравнивать один раз

Ответ №2:

 //responseStr is {"theme":"01"}
String[] parts = responseStr.split(":");

if (parts[1].equals("01")){
    Log.v(TAG, "Success");
} else {
    Log.v(TAG, "No success: "   parts[1]);
}