StringBuilder text = new StringBuilder("It's SO very RUDE to shout!");
Matcher m = Pattern.compile("\\b[\\p{Lu}\\p{Lt}]+\\b").matcher(text);
int matchPointer = 0;// First search begins at the start of the string
while (m.find(matchPointer)) {
matchPointer = m.end(); // Next search starts from where this one ended
text.replace(m.start(), m.end(), ""+ m.group().toLowerCase() +"");
matchPointer += 7; // Account for having added '' and ''
}
System.out.println(text);
-----------------------------------------------------------------------------
Copyright 1997-2024 Jeffrey Friedl