String 字符串 分割 0,1,2,3
当前写法
String str=String.format("%s,%s","0,1,2","3");
String[] split = str.split(",");
List<String> li=new ArrayList<>(split.length);
for(int i=0;i<split.length;i++){
String value=split[i];
if(i>0){
value=String.format("%s,%s",li.get(i-1),split[i]);
}
li.add(value);
}
System.out.println(JSONUtil.toJsonStr(li));
最终要获取的结果 是
["0","0,1","0,1,2","0,1,2,3"]
这种方式也可以实现,有没有更好的写法
String str = "0,1,2,3";
String[] split = str.split(",");
List<String> result = new ArrayList<>();
String previous = "";
for (String s : split) {
String current = previous.isEmpty() ? s : previous + "," + s;
result.add(current);
previous = current;
}
System.out.println(JSONUtil.toJsonStr(result));
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
用java8 的stream流 可以,但是那个可读性相对来说差点,具体的还要看需求
【以下回答由 GPT 生成】
首先,我了解到你希望使用Spring框架的相关方法来优化和简化这段代码。然而,在Spring框架中没有特定的方法可以直接解决你的问题。不过,我可以给出另一个方案来优化这段代码。
String str = "[0,1,2,3]";
String[] split = str.substring(1, str.length() - 1).split(",");
List<String> li = new ArrayList<>(split.length);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < split.length; i++) {
sb.append(split[i]);
li.add(sb.toString());
sb.append(",");
}
System.out.println(JSONUtil.toJsonStr(li));
首先,我们将字符串括号去除(str.substring(1, str.length() - 1)
),然后使用split()
方法将字符串按逗号分割。之后,我们使用StringBuilder
来构建连续的子数组。在每次迭代中,我们将当前字符串添加到StringBuilder
,然后添加到结果数组中,并在后面添加一个逗号,以便在下次迭代中继续拼接。
最后,我们将结果数组转换为JSON字符串并打印出来。
希望这个解决方案能满足你的需求。如果你有任何疑问,请随时提问。
【相关推荐】