Я хочу знать, что произойдет, если я преобразовать это:Java «» преобразуется в Double
String ret = "";
дважды:
Double.parseDouble(ret);
Когда я запускаю эту проблему у меня есть ошибки, говоря Invalid двойной : ""
Я хочу знать, что произойдет, если я преобразовать это:Java «» преобразуется в Double
String ret = "";
дважды:
Double.parseDouble(ret);
Когда я запускаю эту проблему у меня есть ошибки, говоря Invalid двойной : ""
Ниже реализации Java о Double.parseDouble
public static double parseDouble(String s) throws NumberFormatException {
return FloatingDecimal.readJavaFormatString(s).doubleValue();
}
Теперь проверьте ниже код FloatingDecimal.readJavaFormatString
here
in = in.trim(); // don't fool around with white space. throws NullPointerException if null
int l = in.length();
if (l == 0) throw new NumberFormatException("empty String");
Чтобы ответить на ваш вопрос: Поскольку вы передаете пустую строку, вы получите NumberFormatException
.
Исключение вы получите как показано ниже. Обратите внимание на сообщение («пустая строка») то же, что и в моем втором фрагменте кода.
Exception in thread "main" java.lang.NumberFormatException: empty String
Получил ваш ответ? Если нет, то напишите свой собственный ответ, чтобы другие могли воспользоваться им. Http://stackoverflow.com/help/accepted-answer – hagrawal
Будет выдано исключение java.lang.NumberFormatException
.
Если вы попытаетесь запустить код
String ret = "";
double a = Double.parseDouble();
Компилятор бросить java.lang.NumberFormatException
, смысл, в простых терминах, вы дали программу тип входа, который не может быть преобразован в двойной , Если вы хотите исправить это, просто дайте программе синтаксическую строку (например, 6 или 3.24). Вы также можете использовать try
и catch
, чтобы генерировать разные сообщения об ошибках, если указан неправильный ввод.
Пример:
public class Testing {
public static void main(String[] args) {
try{
String ret = "";
double a = Double.parseDouble(ret);
}catch(NumberFormatException e){
System.out.println("Your error message here");
//do something (your code here if the error is thrown)
}
}
}
Эта печать будет из Your error message here
, потому что входной «» не может быть преобразован в два раза.
Подробнее о NumberFormatException: Click here.
Подробнее о разборке строк в парном разряде: Click here.
Подробнее о попытке и уловить: Click here.
Спасибо. Моя программа возвращает «», когда я читаю файл. Этот файл находится внутри внутреннего хранилища устройства. Возвращает ли он "" из-за двойных значений, которые я сохраняю в нем? –
Если вы хотите выяснить это сами, зачем спрашивать его здесь? – Eran
Что мешает вам узнать? –
Возможный дубликат [В чем разница между Double.parseDouble (строка) и Double.valueOf (строка)?] (Http://stackoverflow.com/questions/10577610/what-is-difference-between-double-parsedoublestring-and -double-valueofstring) – ganeshvjy