Как сделать программу сортировки строк без учета регистра? - PullRequest
0 голосов
/ 08 ноября 2019

Я делаю программу, которая будет сортировать строку по алфавиту, и я хочу, чтобы она не учитывала регистр символов. Поэтому, если я введу «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]);
    }

}

}

1 Ответ

0 голосов
/ 08 ноября 2019

Сделайте сравнение без учета регистра. Преобразуйте это

if(chArr[i] > chArr[j]){

, чтобы использовать один и тот же случай с обеих сторон. Например,

if (Character.toUpperCase(chArr[i]) > Character.toUpperCase(chArr[j])) {

или

if (Character.toLowerCase(chArr[i]) > Character.toLowerCase(chArr[j])) {
...