首先,我是 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/