Разбор пустой строки до целого числа в Java - PullRequest
1 голос
/ 15 октября 2011
if(jsonArray.getJSONObject(i).get("SECNO").toString()!=null && jsonArray.getJSONObject(i).get("SECNO").toString().trim()!="")
                        appointment.mSecNo =Integer.parseInt(jsonArray.getJSONObject(i).get("SECNO").toString());
                    else
                        appointment.mSecNo = -1;

В предыдущих строках, когда значение jsonArray.getJSONObject(i).get("SECNO").toString() равно '', оно не перехватывается оператором if ..

и я получаю это сообщение об ошибке .. can't parse '' to integer

Ответы [ 3 ]

2 голосов
/ 15 октября 2011

Не используйте == или != для сравнения строк в Java - сравниваются только ссылки , а не содержимое строк. Кроме того, я сомневаюсь, что toString когда-нибудь вернет ноль. Я подозреваю, что вы хотите:

Foo x = jsonArray.getJSONObject(i).get("SECNO");
if (x != null && x.toString().trim().length() > 0)

(я не знаю, какой будет тип jsonArray.getJSONObject(i).get("SECNO"), следовательно, Foo.)

В данном конкретном случае я использовал length() > 0 для обнаружения непустой строки - но для более общего равенства вы хотели бы использовать equals, поэтому альтернатива:

if (x != null && !x.toString().trim().equals(""))
0 голосов
/ 15 октября 2011

Почему бы просто,

int appointment.mSecNo = -1;

try {
    appointment.mSecNo = Integer.parseInt(jsonArray.getJSONObject(i).get("SECNO").toString());
}catch(Exception e) {
    log.error(" your error message ");
}
0 голосов
/ 15 октября 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...