首页 > 解决方案 > 按字母顺序打印带有字母标题的列表

问题描述

我有一个要打印的按字母顺序排列的字符串列表,但我想使用相应的字母标题来打印。例如:

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

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

最好的方法是什么?它应该不区分大小写,所以 "hello" 和 "Hello" 都在 H.

标签: javasortingalphabetical

解决方案


这将帮助您:

注意:假设列表已排序。否则您需要先进行排序。

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);
}

推荐阅读