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

标签 java

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

相关文章:

java - 我不明白的正则表达式

java - 如何在 RecyclerView Scroll 上下载更多 Firebase 对象?

java - 将 Spark 流数据帧写入 MongoDB

java - 运行 Web 应用程序时出现错误 "HTTP Status 404"-"The requested resource is not available"?

java - android在异步任务中更新自定义 View

java - 为自定义语法创建自定义代码分析规则,并进行测试: howto?

java - 如何从 subview 中存在的按钮实现可扩展 ListView setOnItemClickListener?

java - 自定义 JButton 子类 setIcon 方法不起作用

java - 在 Spring 中使用自定义解析器返回 HTTP 状态 BAD_REQUEST

java - 显示类似 Confide android 应用程序的文本