java String 分割有没有更好的写法

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字符串并打印出来。

希望这个解决方案能满足你的需求。如果你有任何疑问,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^