import java.util.Arrays;
public class CustomSort {
public static String customSort(String input) {
Character[] chars = new Character[input.length()];
for (int i = 0; i < input.length(); i++) {
chars[i] = input.charAt(i);
}
Arrays.sort(chars, (a, b) -> {
if (Character.isDigit(a) && !Character.isDigit(b)) return -1; // Digits before letters
if (!Character.isDigit(a) && Character.isDigit(b)) return 1; // Letters after digits
return a.compareTo(b); // Maintain lexicographic order
});
StringBuilder sortedString = new StringBuilder();
for (char ch : chars) {
sortedString.append(ch);
}
return sortedString.toString();
}
public static void main(String[] args) {
String input = "d2c4b3a1";
String sortedInput = customSort(input);
System.out.println("Custom sorted string: " + sortedInput);
}
}
/*
run:
Custom sorted string: 1234abcd
*/