gpt4 book ai didi

java - 如何跳过java字符串数组中的3个元素并获取接下来的3个元素

转载 作者:行者123 更新时间:2023-11-29 10:08:43 25 4
gpt4 key购买 nike

我想获取由 3 个元素分隔的数组字符串。例如,我需要跳过 3 个元素 0、1、2 并取 3、4、5 的元素。并重复。 (跳过 6、7、8 并得到 9、10、11)直到数组结束。我应该怎么做?

String s1[] = hh.split("\\r?\\n");
System.out.println(s1[3]);

for (int i=0;i<s1.length; i++){

}

子字符串输出:


org.springframework
spring-jdbc
1.0-m4

org.apache.tomcat
tomcat-jdbc
7.0.19

commons-configuration
commons-configuration
20030311.152757

commons-io
commons-io
0.1

org.springframework.security.oauth
spring-security-oauth2
2.1.1.RELEASE


最佳答案

使用模运算符和单个循环的解决方案。没有 IndexOutOfBounds 的风险。

for (int i = 0; i < list.length; i++) {
if (i % 6 > 2) {
System.out.println(list[i]);
}
}

可以将条件翻转为i % 6 < 3如果您想要数组中每 6 个元素中的前 3 个元素。

编辑:以下内容接受您的输入并将其放入 List<String[]> 中其中每个元素包含 3 行。

import java.nio.file.*;
import java.util.stream.Stream;
import java.util.*;
import java.nio.charset.Charset;

public class Partition2 {
public static void main(String[] args) {
String[] input = ...

try (Stream<String> stream = Arrays.stream(input)) {
// https://stackoverflow.com/a/34759493/3717691
String[] array = stream.map(line -> line.trim()).filter(line -> !line.isEmpty()).toArray(String[]::new);

List<String[]> results = new ArrayList<String[]>();
String[] tmp = new String[3];
for (int i = 0; i < array.length; i++) {
tmp[i % 3] = array[i];
if (i % 3 == 2) {
results.add(tmp);
tmp = new String[3];
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

关于java - 如何跳过java字符串数组中的3个元素并获取接下来的3个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54267221/

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