2014-02-13 6 views
-4

Я пытаюсь написать программу, помогающую запоминать длинные абзацы текста, и я застрял. Я пытаюсь написать метод, который при передаче строки вернет строку, содержащую только первые буквы слов в строке, плюс символы новой строки и пунктуацию. Любая помощь?Java - первая буква каждого слова в строке

Пример:

Это тестовое предложение, то есть символ новой строки \ п и некоторые знаки препинания.

Т я а т ы, т ч а н

втор р.

+3

С чем вы сейчас сталкиваетесь? Получил ли какой-нибудь код, в котором вам нужна помощь? – Warlord

+2

Приведите пример и опубликуйте, что вы пробовали до сих пор. –

+0

приведу пример .. –

ответ

9

С регулярных выражений вы можете просто использовать (если вы не ожидаете, акцентированные буквы):

String s = "a long sentence.\nWith a new line, and some punctuation!"; 
System.out.println(s.replaceAll("(\\w)\\w+", "$1")); 

, который выводит:

a l s. 
W a n l, a s p! 

Объяснение:

  • \\w представляет собой символ в [a-zA-Z_0-9] => это не будет работать с акцентированными буквами
  • (\\w)\\w+ ищет группу по меньшей мере двух букв
  • $1 возвращает первую группу захвата (часть в круглых скобках, то есть первая буква).
+0

С этим справляется сокращение? (Я не знаю, как они должны быть обработаны, но если вход «Не делает», это создает «D» t')? – clcto

+0

@clcto Я не знаю, работает ли это в том смысле, что я не знаю, что будет ожидать в таком случае. Но да, «Не верь», вернется «Д». – assylias

Смежные вопросы