Самый короткий рекурсивный код для удаления соседних символов из входной строки.
public class StackOverflow {
static String cleanString(String input) {
return input==null || input.length()<=1?input:cleanStringWrapper(input.substring(1),input.substring(0,1));
}
static String cleanStringWrapper(String input, String result) {
if (input.length() - 1 <= 0) {
return result+(result.charAt(result.length() - 1)!=input.charAt(0)?input:"");
} else {
return cleanStringWrapper(input.substring(1), result+(result.charAt(result.length() - 1) != input.charAt(0)?input.charAt(0):""));
}
}
public static void main(String[] args)
{
System.out.println(cleanString("OOPS"));
}
}
Выход:
cleanString ("sensssaatiionnaallll!") -> "Сенсационный!"
cleanString ("PPProoggggraamm") -> "Программа"
cleanString ("Lletterriiing") -> "Lletering"
cleanString ("Gooooogle") -> "Gogle"
cleanString ("ABC") -> "ABC"
cleanString ("A") -> "A"
cleanString ("") -> ""
cleanString ( null ) -> null