Как получить второе слово из строки? - PullRequest
3 голосов
/ 03 июня 2010

Возьмите эти примеры

Smith John
Smith-Crane John
Smith-Crane John-Henry
Smith-Crane John Henry

Я бы хотел получить John Первое слово после пробела, но оно не может быть до конца, оно может быть до не альфа-символа. Как это будет в Java 1.5?

Ответы [ 4 ]

5 голосов
/ 03 июня 2010

Вы можете использовать String.split :

line.split(" ");

Что для первой строки даст:

{ "Smith", "John" }

Затем вы можете перебрать массив, чтобы найти его. При необходимости вы также можете использовать регулярные выражения в качестве разделителя.

Это достаточно хорошо, или вам нужно что-то более надежное?

5 голосов
/ 03 июня 2010

Вы можете использовать регулярные выражения и Matcher класс:

String s = "Smith-Crane John-Henry";
Pattern pattern = Pattern.compile("\\s([A-Za-z]+)");
Matcher matcher = pattern.matcher(s);
if (matcher.find()) {
    System.out.println(matcher.group(1));
}

Результат:

John
1 голос
/ 03 июня 2010

Лично мне очень нравится струнный токенизатор. Я знаю, что в наши дни это не в моде, ведь сплит настолько прост, но ...

(Psuedocode из-за высокой вероятности выполнения домашнего задания)

create new string tokenizer using (" -") as separators
iterate for each token--tell it to return separators as tokens
    if token is " "
        return next token;

сделано.

1 голос
/ 03 июня 2010

Вы захотите использовать регулярное выражение, например, следующее.

\s{1}[A-Z-a-z]+

Наслаждайтесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...