У меня есть String
объект Java . Мне нужно извлечь только цифры из него. Я приведу пример:
"123-456-789"
я хочу "123456789"
Есть ли библиотечная функция, которая извлекает только цифры?
Спасибо за ответы. Прежде чем я попробую это, мне нужно знать, нужно ли мне устанавливать какие-либо дополнительные библиотеки?
str = str.replaceAll("[^\\.0123456789]","");
(?!\\.)
Вот более подробное решение. Менее элегантно, но, вероятно, быстрее:
Тестовый код:
Вывод:
Кстати: я не использовал Character.isDigit (ch), потому что он принимает много других символов, кроме 0 - 9.
источник
StringBuilder
конструктору (например,input.length()
), чтобы он не нуждался в перераспределении. Вам не нужно требоватьString
здесь;CharSequence
достаточно. Кроме того, вы можете отделить распределение объектаStringBuilder
от набора нецифровых чисел, написав отдельную функцию, которая принимает вCharSequence
качестве входных данных иAppendable
экземпляр в качестве накопителя выходных данных.источник
Использование Google Guava:
ОБНОВИТЬ:
Использование Precomputed CharMatcher может еще больше улучшить производительность
источник
Charmatcher.DIGIT
предопределено.Это будет игнорировать десятичные точки.
Например: если у вас есть вход в
445.3kg
качестве выхода будет445.3
.источник
Использование Google Guava:
CharMatcher является подключаемым и довольно интересным в использовании, например, вы можете сделать следующее:
вывод == 123-456-789
источник
Используйте регулярное выражение, чтобы соответствовать вашему требованию.
источник
Я вдохновлен кодом Шона Патрика Флойда и немного переписал его для максимальной производительности, которую я получаю.
я делаю тест производительности на очень длинную строку с минимальными числами и результат:
Кстати, это зависит от того, как долго эта строка. Со строкой, содержащей только 6 чисел, гуава на 50% медленнее и регулярное выражение в 1 раз медленнее
источник
Выход: 11
источник
Ты можешь использовать
str.replaceAll("[^0-9]", "");
источник
Я доработал код для телефонных номеров +9 (987) 124124.
Символы Юникода занимают 4 байта.
источник
Код:
источник
источник