如何在Java数组中获取从指定元素到另一指定元素的字符串值?
当然有可行的实现方式啦!你的思路方向是对的,但原代码里有几个小问题需要调整,才能达到你想要的效果。
先说说原代码的问题
- Java数组的长度属性是**
length(小写)**,不是Length,这会直接导致编译错误; - 原逻辑只有当元素等于"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; } } }
代码执行流程
- 遍历到"a"时,
startPrinting为false,不打印; - 遍历到"b"时,触发开关变为
true,随即打印"b "; - 后续遍历"c"、"d"时,开关保持
true,依次打印"c "、"d "; - 遍历到"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
相关产品推荐
相关产品推荐

