我正在编写一个程序,该程序将按字母顺序对字符串进行排序,并且我想使其不区分大小写。因此,如果我输入“ aBc”,我希望它输出“ aBc”而不是“ Bac”。我们不是在使用Array.sort方法,而是在学习不同的算法。对于这个项目,它明确表示应该使用选择排序算法。 Kbd类是我们在Java类中使用的类,它基本上类似于扫描器,但更短了一行。
public class Sträng_uppgift{
public static void main(String[] args){
String unsorted_string = Kbd.readString("Write a word!, I will sort it alphabetically!");
char[] chArr = unsorted_string.toCharArray();
char temp;
for(int i = 0; i < chArr.length; i++){
for(int j = i+1; j < chArr.length; j++){
if(chArr[i] > chArr[j]){
temp=chArr[i];
chArr[i] = chArr[j];
chArr[j] = temp;
}
}
System.out.print(chArr[i]);
}
}
}
最佳答案
使您的比较不区分大小写。转换这个
if(chArr[i] > chArr[j]){
在两侧使用相同的情况。例如,
if (Character.toUpperCase(chArr[i]) > Character.toUpperCase(chArr[j])) {
要么
if (Character.toLowerCase(chArr[i]) > Character.toLowerCase(chArr[j])) {