Как я преобразовываю Строку для Удвоения в Java с помощью определенной локали?

В настоящее время способность выделять весь подобный текст и редактировать (например, функциональность Ctrl + D в Sublime, как упомянуто @George) не встроена в Notepad ++ версии 6.9.2. Похоже, это будет работать, когда Notepad ++ обновит версию Scintilla , которую он использует, поскольку функциональность встроена в более новую версию этого .

Единственный способ выполнить что-то похожее на многострочное редактирование, о котором вы говорите, - это либо использовать функцию замены, либо версию мультиредактирования Notepad ++.

Найти / заменить

  1. Выделите слово, которое вы хотите заменить.
  2. Введите Ctrl kbd> + H kbd>, чтобы вызвать диалог замены.
  3. Изменить текст «Заменить на».
  4. Выберите «Заменить» или «Заменить все»

Для мультиредактирования

Сначала необходимо включить эту функцию в Notepad ++ . Для этого перейдите в Настройки kbd> → Настройки kbd> → Редактирование kbd> и затем включите многострочное редактирование. Теперь, когда вы удерживаете Ctrl и щелкаете вокруг текста, курсор будет оставаться в месте каждого клика. Когда вы закончите поиск всех мест, которые вы хотите отредактировать, вы можете начать печатать. Все, что вы печатаете, теперь будет появляться в каждом месте, где вы оставили курсор.

38
задан Daniel C. Sobral 20 May 2009 в 14:01
поделиться

6 ответов

Попробуйте java.text.NumberFormat . Из документации Javadocs:

Чтобы отформатировать номер для другого языкового стандарта, укажите его в вызове getInstance.

 NumberFormat nf = NumberFormat.getInstance (Locale.FRENCH);

Вы также можете использовать NumberFormat для анализа чисел:

 myNumber = nf.parse (myString);

parse () возвращает Число ; поэтому, чтобы получить double , вы должны вызвать myNumber.doubleValue () :

    double myNumber = nf.parse(myString).doubleValue();

Обратите внимание, что parse () никогда не вернет null , поэтому это не может вызвать исключение NullPointerException . Вместо этого parse генерирует проверенное ParseException в случае сбоя.

Edit: Я изначально сказал, что есть другой способ преобразовать в double : приведите результат к Double и используйте распаковку. Я думал, что, поскольку используется универсальный экземпляр NumberFormat (согласно документации Javadocs для getInstance ), он всегда будет возвращать Double . Но DJClayworth указывает, что документы Javadocs для parse (String, ParsePosition) (который вызывается parse (String) ) говорят, что возвращается Long , если возможно. Следовательно, преобразование результата в Double небезопасно и не должно пытаться!
Спасибо, DJClayworth!

64
ответ дан 27 November 2019 в 03:26
поделиться

NumberFormat - это то, что нужно, но вы должны знать о его особенностях, которые возникают, когда ваши данные верны менее чем на 100%.

Я нашел следующее полезным:

http://www.ibm.com/developerworks/java/library/j-numberformat/index.html

Если вашему вводу можно доверять, то вам не о чем беспокоиться.

7
ответ дан 27 November 2019 в 03:26
поделиться

Вы используете NumberFormat . Вот один пример, который, я думаю, выглядит правильным.

4
ответ дан 27 November 2019 в 03:26
поделиться

Это не должно быть проблемой при использовании java.text.DecimalFormat.

2
ответ дан 27 November 2019 в 03:26
поделиться

Использовать NumberFormat.getNumberInstance (Locale)

2
ответ дан 27 November 2019 в 03:26
поделиться

Вы знаете, какой это регион? Затем вы можете использовать

DecimalFormat format = DecimalFormat.getInstance(theLocale);
format.parse(yourString);

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

1
ответ дан 27 November 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: