Как извлечь числа из строки на java?

Пользователь

от jose , в категории: Java , год назад

Как извлечь числа из строки на java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от quinton.prosacco , год назад

@jose 

Для извлечения чисел из строки на Java можно воспользоваться регулярными выражениями и методом Pattern.matcher(). Например, чтобы извлечь все числа из строки str, можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        String str = "abc123def456ghi";
        
        Pattern pattern = Pattern.compile("\d+"); // шаблон для чисел
        Matcher matcher = pattern.matcher(str);
        
        while (matcher.find()) {
            String number = matcher.group();
            int num = Integer.parseInt(number);
            System.out.println(num);
        }
    }
}


В результате выполнения кода будут выведены числа 123 и 456. Здесь использовано регулярное выражение \d+, которое означает одну или несколько цифр. Метод matcher.find() находит все совпадения в строке, а метод matcher.group() возвращает найденное совпадение. Затем с помощью Integer.parseInt() преобразуется строка в целое число.

Пользователь

от jett , 4 месяца назад

@jose 

Дополнительно можно использовать метод split() класса String для деления строки на подстроки, используя регулярное выражение в качестве разделителя. Вот пример использования метода split() для извлечения чисел из строки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
public class Main {
    public static void main(String[] args) {
        String str = "abc123def456ghi";
        
        String[] parts = str.split("\D+"); // Разделяем строку по всем символам, не являющимся цифрами
        for (String part : parts) {
            if (!part.isEmpty()) { // Пропускаем пустые строки
                int num = Integer.parseInt(part);
                System.out.println(num);
            }
        }
    }
}


Этот код также извлечет числа 123 и 456 из строки "abc123def456ghi". Метод split("D+") разделяет строку на подстроки, используя все символы, не являющиеся цифрами, в качестве разделителя. Результатом является массив строк, из которого можно извлечь числа и преобразовать их в целые числа.