@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()
преобразуется строка в целое число.
@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+") разделяет строку на подстроки, используя все символы, не являющиеся цифрами, в качестве разделителя. Результатом является массив строк, из которого можно извлечь числа и преобразовать их в целые числа.