Сортировка строки по алфавиту с учетом условия
Как отсортировать содержимое строки по алфавиту, при этом числа должны остаться на своих местах.
Есть строка: Great43 WA1Y
Нужно получить, что-то на подобии: aegrt43 aw1y
Пробовал разбить на несколько массивов с учетом пробела.
Потом перебрать, но все равно сортировка происходит по всему массиву.
На выходе получаю 43aegrt 1awy, как быть с цифрами?
Буду премного благодарен, если подскажете. Можно объяснением или блоком кода.
Ответы (1 шт):
Автор решения: Олексій Моренець
→ Ссылка
static String parseAndSortLetters(String str) {
String result = "";
int current = 0;
int end = str.length();
while (current < end) {
int start = current;
while (current < end && Character.isAlphabetic(str.charAt(current))) {
current++;
}
String substring = str.substring(start, current).toLowerCase();
String sortedSubstring = Stream.of(substring.split("")).sorted().collect(Collectors.joining());
result += sortedSubstring;
while (current < end && !Character.isAlphabetic(str.charAt(current))) {
result += str.charAt(current);
current++;
}
}
return result;
}
Добавьте проверку на null!!!