Приведение нулевой строки в целое число

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

спасибо

7 ответов


вы не может cast из строки в целое число. Однако, если вы пытаетесь преобразовать строку в целое число, и если вы должны предоставить реализацию для обработки 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;
}

если вы используете Апач Коммонс, есть вспомогательный метод, который делает трюк:

NumberUtils.createInteger(myString)

как говорится в документация:

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


String s= "";  
int i=0;
i=Integer.parseInt(s+0);
System.out.println(i);

попробуй такое


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

    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
    }
}

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

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);
    }
}

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

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

для нецелых строк он будет бросать исключение Numberformat


попробовать ниже code:application вернутся 0 если строка имеет значение null, она будет анализировать строку в int если строка содержит только цифры..

код:

(str.equals("null")?0:Integer.parseInt(str))