gpt4 book ai didi

java - 如何使用 split() 将字符串分割为每个索引有 15 个项目的单独字符串?

转载 作者:行者123 更新时间:2023-12-01 17:00:30 24 4
gpt4 key购买 nike

通常使用 split() 它将整个字符串除以一个正则表达式。

所以如果我采用String objects=“door,cat,house,trash”;并执行 objects.split(",") 它将把它分成 String[] objects= {"door","cat","house","trash"} 的数组; 你可能知道。

但我不想用每个逗号分隔它。我想将它与每 15 个项目分开。所以我的列表将包含 String[] objects= {"door,cat,house,trash...obj15","obj1,obj2,obj3...obj15"};

这有道理吗?我该如何去做呢?

最佳答案

split() 对此不利。请改用 find() 循环。

演示(Java 4+)

String input = "door,cat,house,trash,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17,r18,s19,t20";

Pattern p = Pattern.compile("(?=.)((?:[^,]*,){0,4}[^,]*),?");
List<String> result = new ArrayList<>();
for (Matcher m = p.matcher(input); m.find(); )
result.add(m.group(1));

for (String s : result)
System.out.println('"' + s + '"');

演示(Java 9+)

String input = "door,cat,house,trash,e5,f6,g7,h8,i9,j10,k11,l12,m13,n14,o15,p16,q17,r18,s19,t20";

String[] result = Pattern.compile("(?=.)((?:[^,]*,){0,4}[^,]*),?").matcher(input)
.results().map(m -> m.group(1)).toArray(String[]::new);

Arrays.stream(result).forEach(s -> System.out.println('"' + s + '"'));

输出

"door,cat,house,trash,e5"
"f6,g7,h8,i9,j10"
"k11,l12,m13,n14,o15"
"p16,q17,r18,s19,t20"

如果您希望每个 block 有 15 个值,您当然应该将 {0,4} 更改为 {0,14}

关于java - 如何使用 split() 将字符串分割为每个索引有 15 个项目的单独字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61513565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com