Встречаются задачи, когда требуется найти все числа или другие данные в строке с указанного слова

Есть некая строка
String str = «Адрес: пр. Независимости, дом 54, корпус 3, офис 405»;
и я хочу узнать, все числа, начиная со слова «корпус» — т.е. 3 и 405 (54 — нет, т.к. данное число располагается до слова «корпус»)

Решение:

public static void main(String[] args) {
		
		String str = "Адрес: пр. Независимости, дом 54, корпус 3, офис 405";

		String specifiedWord = "корпус";

		System.out.println(numbersWithSpecifiedWord(str, specifiedWord));
	}

	
	public static List<String> numbersWithSpecifiedWord(String str, String specifiedWord) {
		str = str.substring(str.indexOf(specifiedWord) + specifiedWord.length(), str.length());
		
		ArrayList<String> list = new ArrayList<>();
		Pattern p = Pattern.compile("[0-9]{1,}");
		Matcher m = p.matcher(str);

		while (m.find()) {
			list.add(m.group());
		}
		return list;
		
	}

Вывод на консоль:
[3, 405]

Реклама