Однако возможно ли сделать это без регулярных выражений, как я делаю здесь?
Да . Регулярное выражение понятно и легко читается, поэтому я, вероятно, воспользуюсь им; но вы могли бы использовать вложенные l oop, a StringBuilder
и Character.isWhitespace(char)
как
StringBuilder sb = new StringBuilder();
for (int i = 0; i < firstString.length(); i++) {
sb.append(firstString.charAt(i));
if (Character.isWhitespace(firstString.charAt(i))) {
// The current character is white space, skip characters until
// the next character is not.
while (i + 1 < firstString.length()
&& Character.isWhitespace(firstString.charAt(i + 1))) {
i++;
}
}
}
String secondString = sb.toString();
Примечание: это редкий пример вложенного l oop, то есть O (N); внутренний l oop изменяет тот же счетчик, что и внешний l oop.