Учитывая строку, например "Hello a World b", можно ли просто напечатать символы "a" и "b" и игнорировать "Hello" и "World"?
Я просто хочу распечатать однословные слова и игнорировать многобуквенные строки.
С правильным регулярным выражением...
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);
Вам нужно отображать смайлики и какой символ должен его заменить. Затем итерации по карте, замените 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());
}
Конечно, вам нужно использовать метод 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);
}
Я надеюсь, что это помогает :)