В чем разница между двойными.parseDouble(String) и двойной.метод valueOf(строка)?


Я хочу, чтобы преобразовать String до Double тип данных. Я не знаю, если я должен использовать parseDouble или valueOf.

в чем разница между этими двумя методами?

6 52

6 ответов:

parseDouble возвращает примитивный двойник, содержащий значение строки:

возвращает новое значение double, инициализированное значением, представленным указанной строкой, как выполняется методом valueOf класса Double.

valueOf возвращает двойной экземпляр, если он уже кэширован, вы получите тот же самый кэшированный экземпляр.

возвращает двойной экземпляр, представляющий указанное двойное значение. Если один новый двойной экземпляр не требуется, этот метод обычно должен быть используется в предпочтении к конструктору Double( double), так как этот метод вероятно, приведет к значительно лучше и время кэширование часто запрашиваемых значений.

чтобы избежать накладных расходов на создание нового экземпляра Double object, обычно следует использовать valueOf

Double.parseDouble(String) возвращает примитивное double тип. Double.valueOf(String) вернет объект-оболочку типа Double.

так, например:

double d = Double.parseDouble("1");

Double d = Double.valueOf("1");

кроме того, valueOf(...) перегруженный метод. Он имеет два варианта:

  1. Double valueOf(String s)
  2. Double valueOf(double d)

, тогда как parseDouble это один метод со следующим подпись:

  1. double parseDouble(String s)

Они оба преобразуют строку в двойное значение, но если метод parseDouble() возвращает примитивное двойное значение, то метод valueOf () далее преобразует примитивное двойное значение в объект класса двойной оболочки, который содержит примитивное двойное значение.

преобразование из строки в примитивный double может вызвать Nfe (NumberFormatException), если значение в строке не преобразуется в примитивный double.

метод parseDouble () используется для инициализации строки (которая должна содержать некоторое числовое значение)....возвращаемое значение имеет примитивный тип данных, как int, float, и т. д.

но valueOf () создает объект класса-оболочки. Вы должны развернуть его, чтобы получить двойное значение. Его можно сравнить с шоколадом. Производитель заворачивает шоколад в фольгу или бумагу, чтобы предотвратить загрязнение окружающей среды. Пользователь берет шоколад, снимает и бросает обертку и ест оно.

обратите внимание на следующее преобразование.

int k = 100; Integer it1 = new Integer(k);

тип данных int k преобразуется в объект it1 с помощью класса Integer. Объект it1 может использоваться в программировании Java везде, где требуется объект k.

следующий код можно использовать для разворачивания (возврата int из объекта Integer) объекта it1.

int m = it1.intValue();

документация parseDouble() говорит " возвращает новый двойной инициализированный значение, представленное указанной строкой, как выполняется valueOf метод класса Double.- значит, они должны быть идентичны.

Если вы хотите преобразовать строку в двойной тип данных, то большинство выбирает метод parseDouble (). Смотрите пример кода:

String str = "123.67";
double d = parseDouble(str);

вы получите значение в double. См. учебник StringToDouble по адресу tutorialData.