Как это сделать?

81
10

У меня есть эта строка:

1945: Нью-Йоркский университет: 70: штат Огайо. Штат: 65

Я хочу использовать сканер для чтения и игнорировать ':', 70 и 65, которые являются полями оценки. Но я хочу, чтобы он читал год. Я знаю, как установить разделитель, чтобы отбросить все числа и ':', но я не знаю, как заставить его отказаться от определенных чисел. Это то, о чем я говорю, действительно можно сделать?

спросил(а) 2013-04-10T07:55:00+04:00 7 лет, 5 месяцев назад
1
Решение
58

пытаться

    Scanner sc = new Scanner("1945:New York University:70:Ohio State:65");
sc.useDelimiter(":\\d+:|:\\d+$|:");
while(sc.hasNext()) {
System.out.println(sc.next());
}

вывод

1945
New York University
Ohio State

ответил(а) 2013-04-10T08:20:00+04:00 7 лет, 5 месяцев назад
41

Мой ответ, отредактированный sans юмор

Scanner scanner = new Scanner("1945:New York University:70:Ohio State:65");
scanner.useDelimiter(":(\\d\\d:?)?");

while(scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close();

ответил(а) 2013-04-10T08:34:00+04:00 7 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема