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

如何在Java数组中获取从指定元素到另一指定元素的字符串值?

当然有可行的实现方式啦!你的思路方向是对的,但原代码里有几个小问题需要调整,才能达到你想要的效果。

先说说原代码的问题

  1. Java数组的长度属性是**length(小写)**,不是Length,这会直接导致编译错误;
  2. 原逻辑只有当元素等于"b"时才打印,遇到"e"直接break,这样中间的"c"、"d"和"e"都不会被输出,不符合预期。

正确的实现思路

我们可以用一个标记变量来控制打印的开启和停止:

  • 初始时标记为false,表示还没到要打印的元素;
  • 当遍历到"b"时,把标记设为true,之后只要标记为true就打印当前元素;
  • 遇到"e"时,先打印它,再退出循环。

完整代码示例

String[] array = new String[7];
array[0] = "a";
array[1] = "b";
array[2] = "c";
array[3] = "d";
array[4] = "e";
array[5] = "f";
array[6] = "g";

// 标记是否开始打印
boolean startPrinting = false;
for (int i = 0; i < array.length; i++) {
    String current = array[i];
    
    // 遇到"b",开启打印开关
    if (current.equals("b")) {
        startPrinting = true;
    }
    
    // 开关开启时,打印当前元素
    if (startPrinting) {
        System.out.print(current + " ");
        // 遇到"e",打印后立即停止遍历
        if (current.equals("e")) {
            break;
        }
    }
}

代码执行流程

  1. 遍历到"a"时,startPrinting为false,不打印;
  2. 遍历到"b"时,触发开关变为true,随即打印"b ";
  3. 后续遍历"c"、"d"时,开关保持true,依次打印"c "、"d ";
  4. 遍历到"e"时,先打印"e ",然后触发break退出循环,正好得到你预期的输出:b c d e 。

如果你想简化数组初始化,也可以用增强for循环的写法:

// 直接初始化数组更简洁
String[] array = {"a", "b", "c", "d", "e", "f", "g"};
boolean startPrinting = false;
for (String s : array) {
    if (s.equals("b")) {
        startPrinting = true;
    }
    if (startPrinting) {
        System.out.print(s + " ");
        if (s.equals("e")) {
            break;
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:25:55