Приведение нулевой строки в целое число
есть ли способ привести 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
если значение не может быть преобразовано.
вы не можете выполнить приведение из строки в целое число.
Типы данных 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))