gpt4 book ai didi

java - 如何检查变量是否已初始化

转载 作者:太空狗 更新时间:2023-10-29 22:33:02 26 4
gpt4 key购买 nike

首先,我是 Java 的新手,如果这个问题非常简单,我很抱歉。

问题是:我有一个 String[] s,它是通过拆分一个字符串而制成的,其中每个项目都是一个数字。我想将 s 的项目转换为 int[] n

s[0] 包含 n 将包含的项数,有效地 s.length-1。我正在尝试使用 foreach 循环来执行此操作:

int[] n;
for(String num: s){
//if(n is not initialized){
n = new int[(int) num];
continue;
}
n[n.length] = (int) num;
}

现在,我意识到我可以使用这样的东西:

int[] n = new int[(int) s[0]];
for(int i=1; i < s.length; i++){
n[i-1] = (int) s[i];
}

但我确信我将来会遇到“如果 n 未初始化就初始化它”的问题。

最佳答案

您不能将 String 转换为 int。 Java 是强类型的,并且没有您在脚本语言中可能会发现的隐式类型转换。

要将 String 转换为 int,请使用显式转换,例如 Integer.parseInt(String)

所有成员变量和数组元素都使用默认值初始化。对于 int 类型,值为 0。对于引用类型(Object 的任何子类型),默认值为 null。局部变量没有默认值,但编译器会分析代码以确保在读取变量之前分配了一个值。否则,代码将无法编译。

我想你想要的是这样的:

int[] n = new int[Integer.parseInt(s[0]);
for (int idx = 0; idx < n; ++idx)
n[idx] = Integer.parseInt(s[idx + 1]);

关于java - 如何检查变量是否已初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2623125/

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