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