java - 如何根据 Java 中的两个符号对字符串进行转换/排序?
问题描述
我有以下字符串:
String string = "bbb,aaa,ccc\n222,111,333\nyyy,xxx,zzz";
我正在尝试将其转换为:
String converted = "aaa,bbb,ccc\n111,222,333\nxxx,yyy,zzz";
以某种方式排序。这是我到目前为止所尝试的:
String[] parts = string.split("\\n");
List<String[]> list = new ArrayList<>();
for(String part : parts) {
list.add(part.split(","));
}
for(int i = 0, j = i + 1, k = j + 1; i < list.size(); i++) {
String[] part = list.get(i);
System.out.println(part[i]);
}
所以我设法分别从每个“单元”中获取第一个元素。但是如何获取所有并订购它们以便我得到那个结果?
使用 Java8 可以更简单吗?
提前致谢!
解决方案
我想一种方法是:
String result = Arrays.stream(string.split("\\n"))
.map(s -> {
String[] tokens = s.split(",");
Arrays.sort(tokens);
return String.join(",", tokens);
})
.collect(Collectors.joining("\\n"));
System.out.println(result); // aaa,bbb,ccc\n111,222,333\nxxx,yyy,zzz
请注意,如果您的模式比\n
or更复杂,
- 最好将它们单独提取Pattern
(s)
推荐阅读
- vim - 错误 CocAction("extensionStats") 不起作用
- java - ItemCount 未更新
- javascript - 如何在编辑器内容更改时将ckeditor5内容发送到python烧瓶
- delphi - Delphi 中的注释会减慢执行时间吗?
- reactjs - useEffect 不验证布尔值以执行某些操作
- bigcommerce - 如何在 Bigcommerce 中更改 H1 标题(产品页面上的产品描述)的大小
- json - Json Schema if/then 没有按预期工作
- java - 无法使用 jdbc 驱动程序连接到 mysql
- oracle - PL/SQL 动态 SQL 在函数中带单引号
- python - 根据 NaN 值使用 .apply() 更改 DataFrame