我正在编写一个程序,该程序将按字母顺序对字符串进行排序,并且我想使其不区分大小写。因此,如果我输入“ 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])) {

09-27 06:48