java - 按字母顺序打印带有字母标题的列表
问题描述
我有一个要打印的按字母顺序排列的字符串列表,但我想使用相应的字母标题来打印。例如:
["Blue","Cat in hat","Zebra","2 Words"]
## B
Blue
## C
Cat in hat
## Z
Zebra
## [0-9]
2 Words
最好的方法是什么?它应该不区分大小写,所以 "hello" 和 "Hello" 都在 H.
解决方案
这将帮助您:
注意:假设列表已排序。否则您需要先进行排序。
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);
}
推荐阅读
- python - 在目录的每个子文件夹中创建一个文件夹?
- javascript - 循环中的Javascript增量
- powershell - 如何使用 Powershell 脚本映射到网络驱动器
- javascript - 滚动设置数量的像素后,jQuery会触发一个函数
- spring - 使用 javax.ws.rs.PathParam 和 Docker Swarm 在 URI 中出现 @PathParam 的奇怪行为
- javascript - 如何在 IE 和 Chrome 中重放动画 gif
- excel - 将工作表复制到新工作簿时删除宏
- css - Odoo 10:如何增加字段宽度?
- angularjs - Flot legendFormatter 不适用于 ng-click
- c# - Admob 广告不显示(XamarinForms + C# + Android)