gpt4 book ai didi

java - 字符串数组的意外输出

转载 作者:行者123 更新时间:2023-12-01 06:43:18 24 4
gpt4 key购买 nike

我用以下代码创建了一个字符串数组

public class Main 
{
static String[] words = {"watch", "on", "youtube",":","Mickey","en","de","stomende","drol"};
public static void main(String[] args)
{
String output = "";
for(int i = 1 ; i <= words.length ; i++)
{
output += " " + words[i];
}

System.out.println(output);
}
}

我期望收到的输出是:

"Watch on youtube : Mickey en de stomende drol"

但实际输出是

"on youtube : Mickey en de stomende drol"

我想我犯了一个小错误,这是怎么回事?

最佳答案

But the actual output was

[...]

不是您发布的代码。您发布的代码无法编译,因为:

  • 您没有以分号结束字段初始化
  • 如果有,您将尝试访问实例字段而不创建实例
  • 修复此问题后,您会遇到 ArrayIndexOutOfBoundsException ,其原因与您错过第一个元素的原因基本相同 - 见下文。

这个:

for(int i = 1 ; i <= words.length ; i++)

应该是:

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

请注意,起始索引循环条件都已更改。后者是表达从 0(含)到独占上限的循环的惯用方式。

Java 中的数组是从 0 开始的 - 例如,长度为 4 的数组的有效索引为 0、1、2 和 3。请参阅 Java arrays tutorial了解更多详情。

(顺便说一句,像这样的重复字符串连接通常是一个坏主意。对于您的情况来说,这不是问题,因为值很少,但您应该了解 StringBuilder。)

关于java - 字符串数组的意外输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29260754/

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