2013-09-18 3 views
0

я должен редактировать текст с определенными правилами:Java Edit Text с определенными правилами

Повторяющиеся буквы в одном слове будет сокращено до одной буквы.

"Questions" instead of "QuestionssSsS" 

Более одного пробелов между словами будет сведена к одному пространству

"go to the cinema" instead of "go to the  cinema" 

Одно письмо, которое отделяло от слова будет подключить к слову

"first ten person" instead of "firs t ten person" 

Например:

String s = "I am enouuugGh of an artis t to draw   freely upon my imagination. ImaginatioOO n is more importan t than  knowledge. KKkKkKnowledge is limited. Imagination encircles the wwWorl d."; 

Ожидаемый результат:

I am enough of an artist to draw freely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world. 

Просьба дать рекомендации и рекомендации.

+1

Домашнее задание? что ты уже испробовал? – Joni

+0

Предложение: начать кодирование. – ppeterka

ответ

2
String s = "I am enouuugGh of an artis t to draw   freely upon my imagination. ImaginatioOO n is more importan t than  knowledge. KKkKkKnowledge is limited. Imagination encircles the wwWorl d."; 
System.out.println(s); 
System.out.println("========================================================"); 
s = s.replaceAll("\\s+"," "); 
s = s.replaceAll("(?i)(\\w)\\1+","$1"); 
s = s.replaceAll("(\\w+) (\\w)(?=[ \\.\\?!,])","$1$2"); 
System.out.println(s); 

выход: I am enough of an artist to draw frely upon my imagination. Imagination is more important than knowledge. Knowledge is limited. Imagination encircles the world.

==> \\s+ Several whitespace characters 
==> \\w means A word character, short for [a-zA-Z_0-9] 
==> \\w+ will represent one or more characters of \\w class 
we will also place it in group (\\w+) - this will be 2nd group 
==> Pattern.CASE_INSENSITIVE flag is (?i) 
==> $number is backreferrence 
+1

Возможно, объясните, что вы сделали и почему? Это работает, но не так легко понять, если вы не знакомы с регулярными выражениями. – BackSlash

+0

Обычно я бы поднял этот ответ, но OP явно попросил «не советовать и советовать» не работающее решение, возможно, сам захочет сделать домашнее задание, но не знает, где начать. – Pshemo

+0

Это очень сложно для меня :( –

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