Преобразуйте пустую строку в целое число - PullRequest
14 голосов
/ 07 марта 2012

Есть ли способ привести ноль к Integer. Нуль на самом деле является строкой, которую я передаю в своем сервисном слое, который принимает его как целое число. Таким образом, всякий раз, когда я пытаюсь привести нулевую строку к целому, это вызывает исключение. Но я должен привести ноль в целое число.

Спасибо

Ответы [ 7 ]

23 голосов
/ 07 марта 2012

Вы не можете привести от String к Integer. Однако, если вы пытаетесь преобразовать строку в целое число и если вам нужно предоставить реализацию для обработки null строк, взгляните на этот фрагмент кода:

String str = "...";
// suppose str becomes null after some operation(s).
int number = 0;
try
{
    if(str != null)
      number = Integer.parseInt(str);
}
catch (NumberFormatException e)
{
    number = 0;
}
11 голосов
/ 10 сентября 2014

Если вы используете Apache Commons , есть вспомогательный метод, который делает трюк:

NumberUtils.createInteger(myString)

Как сказано в документации :

"преобразовывает String в Integer, обрабатывая шестнадцатеричные и восьмеричные нотации; возвращает null, если строка null; выдает NumberFormatException, если значение не может быть преобразовано.

6 голосов
/ 07 марта 2012
String s= "";  
int i=0;
i=Integer.parseInt(s+0);
System.out.println(i);

Попробуйте это

3 голосов
/ 07 марта 2012

Нельзя приводить от String к Integer.
Типы данных Java бывают двух видов: примитив и ссылка . Типы примитивов: байт, short, int, long, char, float, double . Типы ссылок: класс, интерфейс, массив.
byte -> short -> int -> long -> float -> double. is allow, or Приведение может быть своего собственного типа или одного из его типов или интерфейсов подкласса или суперкласса.
Так что это бывший. функции взглянуть

    public int getInteger(String no) {
    if (no != null) {
        return Integer.parseInt(no); //convert your string into integer 
    } else {
        return 0; // or what you want to return if string is Null
    }
}
2 голосов
/ 07 марта 2012

Как насчет этого?

private static void castTest() {
    System.out.println(getInteger(null));
    System.out.println(getInteger("003"));
    int a = getInteger("55");
    System.out.println(a);
}

private static Integer getInteger(String str) {
    if (str == null) {
        return new Integer(0);
    } else {
        return Integer.parseInt(str);
    }
}
0 голосов
/ 09 декабря 2014

Попробуйте ниже code:application вернет 0, если строка равна нулю, иначе она будет проанализирована до int, если строка содержит только одно число ..

Код:

(str.equals("null")?0:Integer.parseInt(str))
0 голосов
/ 07 марта 2012

Если вы уверены, что должны обрабатывать только нули,

int i=0;
i=(str==null?i:Integer.parseInt(str));
System.out.println(i);

для нецелочисленных строк будет выдано исключение числового формата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...