Есть ли способ извлечь из строки только односимвольные слова?

1

Учитывая строку, например "Hello a World b", можно ли просто напечатать символы "a" и "b" и игнорировать "Hello" и "World"?

Я просто хочу распечатать однословные слова и игнорировать многобуквенные строки.

Теги:
string
extract
char

3 ответа

1
Лучший ответ

С правильным регулярным выражением...

Matcher m = Pattern.compile("\\b[a-zA-Z]\\b").matcher(str);
while (m.find())
    System.out.println(m.group());

Тот же результат, но меньше кода, заключается в том, чтобы удалить все слова с несколькими буквами, а затем разбить на пробелы:

for (String letter : str.replaceAll("\\w\\w+", "").trim().split(" +"))
    System.out.println(letter);
  • 0
    Протестировал и заставил работать так, как я этого хотел. Спасибо вам большое! Вы спасатель жизни!
0

Вам нужно отображать смайлики и какой символ должен его заменить. Затем итерации по карте, замените emote (key) символом (значением) и вашим набором.

Выглядит немного как это

Map<String, String> emoticons = new HashMap<String, String>();
//fill it with emoticons and what string should replace it

String s = "Hello :) World :P";

for(Map.Entry<String, String> entry: emoticons.entrySet()){
    s = s.replace(entry.getKey(), entry.getValue());
}
0

Конечно, вам нужно использовать метод contains из класса String

List <String> emoticons = new ArrayList();

for(String emoticon : emoticons) {
       String input = "Hello :) World :P";
       boolean output= input.contains(emoticon);
       System.out.println("this emoticon "+emoticon+ is pressent);
}

Я надеюсь, что это помогает :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню