我要对字符串s =“ eBaDcAfg153E”进行排序,以使排序后的字符串先包含所有小写字母,然后包含大写字母,然后包含数字。
输出应类似于s =“ acefgABDE135”
有人可以帮我吗?
谢谢
答案 0 :(得分:0)
欢迎来到stackoverflow!
阅读how to ask good question,首先尝试解决,如果失败,则首先通过Google搜索。如果找不到答案,您可能会问。
此解决方案可能对您有用(仅用于测试)。您仍然可以对其进行很多改进。
使用StringBuilder
进行字符串修改。
public static void main (String[] args) throws java.lang.Exception
{
String inputString = "eBaDcAfg153E";
String lowerCase = "";
String upperCase = "";
String numberCase = "";
for (int i = 0; i < inputString.length(); i++) {
char c = inputString.charAt(i);
if(Character.isUpperCase(c)) {
upperCase += c;
}else if (Character.isLowerCase(c)) {
lowerCase += c;
}else if(Character.isDigit(c)) {
numberCase += c;
}
}
char upperArray[] = upperCase.toCharArray();
char lowerArray[] = lowerCase.toCharArray();
char numArray[] = numberCase.toCharArray();
Arrays.sort(upperArray);
Arrays.sort(lowerArray);
Arrays.sort(numArray);
System.out.println(new String(lowerArray)+""+new String(upperArray)+""+new String(numArray));
}