帮我写一个java程序,写一个方法,输入一个字符串,按顺序输出,具体规则如下: A或a排第一个,Z或z排第二个,B或b排第三个,Y或y排第四个。。。。N或n排第26个。如果大小字母同时出现,则大字母在前小字母在后。如果有数字或者其他,排在最后面不用排序。
时间: 2023-05-22 14:05:38 浏览: 53
好的,以下是给出的Java程序代码:
public static String sortString(String str) {
String alphabet = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
StringBuilder result = new StringBuilder();
String nonAlpha = "";
for (char ch : str.toCharArray()) {
if (alphabet.indexOf(ch) != -1) {
result.append(ch);
} else {
nonAlpha += ch;
}
}
for (int i = 0; i < alphabet.length(); i += 2) {
char ch = alphabet.charAt(i);
if (result.indexOf(String.valueOf(ch)) != -1) {
result.insert(result.indexOf(String.valueOf(ch)), alphabet.charAt(i + 1));
}
}
return result.toString() + nonAlpha;
}
你只需要输入一个字符串,该字符串将按照规则进行排序并返回。如果您输入一个字符串"azABcd#$EF123",输出结果将是"AaBbCcDdEFz123#$"。 其中大小写字母按字母表顺序进行排序,并提升大写字母的优先级。非字母字符($,#,1,2,3)在最后。