Печать списка в алфавитном порядке с буквенными заголовками - PullRequest
1 голос
/ 14 апреля 2020

У меня есть список строк в алфавитном порядке, который я хочу напечатать, но я хочу сделать это с соответствующими буквенными заголовками. Например:

["Blue","Cat in hat","Zebra","2 Words"]

## B
    Blue
## C
    Cat in hat
## Z
   Zebra
## [0-9]
   2 Words

Какой лучший способ сделать это? Он должен быть нечувствительным к регистру, поэтому "привет" и "привет" оба go под H.

1 Ответ

0 голосов
/ 14 апреля 2020

Это поможет вам:

Примечание. Предполагается, что список отсортирован. В противном случае сначала необходимо выполнить сортировку.

for (String str : stringList) {

    if (Character.isDigit(str.charAt(0))) {
        if (!Character.isDigit(previousChar)) {
        System.out.println("## [0-9]");
        }
    } else if (Character.toUpperCase(str.charAt(0)) != previousChar) {

        System.out.println("## " + Character.toUpperCase(str.charAt(0)));
    }

    previousChar = Character.toUpperCase(str.charAt(0));

    System.out.println(str);
}
...