You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java字符串数组中每跳过3个元素后获取后续3个元素?

解决方案:按间隔提取数组元素

要实现你说的「每3个元素为间隔,跳过前3组、取下一组」的需求,我们可以调整循环的起始索引和步长,不用逐个遍历所有元素,这样效率更高也更直观。

核心思路

  • 起始索引从3开始(直接跳过0、1、2这三个元素)
  • 每次循环往后走6步(因为要完成「跳过3个+取3个」的一轮操作,下一组起始位置就是当前起始+6)
  • 每次循环内,提取当前索引、索引+1、索引+2的元素,同时做越界检查避免报错

完整代码示例

String s1[] = hh.split("\\r?\\n");
// 从第4个元素(索引3)开始,每轮跳过6个元素到下一组起始位
for (int i = 3; i < s1.length; i += 6) {
    // 逐个取出当前组的3个元素,先检查是否越界
    System.out.println(s1[i]);
    if (i + 1 < s1.length) {
        System.out.println(s1[i + 1]);
    }
    if (i + 2 < s1.length) {
        System.out.println(s1[i + 2]);
    }
    // 如果需要把这三个元素作为一组处理,可以在这里扩展逻辑
    // 比如 List<String> currentGroup = Arrays.asList(s1[i], s1[i+1], s1[i+2]);
}

代码细节解释

  1. 循环起始与步长:i = 3 直接定位到第一组要提取的元素开头,i += 6 确保下一轮直接跳到「跳过3个元素后的下一组起始位」(比如3→9→15…),完美匹配你要的间隔规则。
  2. 越界检查:考虑到数组末尾可能不足3个元素的情况,每次取i+1、i+2时先判断是否在数组范围内,避免抛出ArrayIndexOutOfBoundsException。
  3. 扩展灵活性:如果需要把每组3个元素打包成一个单元(比如存入集合做后续处理),可以用Arrays.asList快速将三个元素转为列表。

对应你的示例效果

假设你的数组s1是按每行分割后的结构:

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

运行代码后会输出:

org.apache.tomcat
tomcat-jdbc
7.0.19
commons-io
commons-io
0.1

完全符合你要求的「跳过0-2取3-5、跳过6-8取9-11」的规则。

内容的提问来源于stack exchange,提问作者nascar895

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:54:59