gpt4 book ai didi

java - 使用定界符将字符串数组转换为 int

转载 作者:行者123 更新时间:2023-11-29 05:45:55 24 4
gpt4 key购买 nike

我不明白为什么会出现空指针异常。我正在尝试转换用户在提示后输入的行号,我想用空格“”逗号“,”或逗号和空格“,”来分隔它。

这是我的代码,我在 nums[i]=Integer.parseInt(holder[i]); 上遇到空指针异常;线。我就是想不通为什么。

String again="n";
int[] nums = null;

do {
Scanner scan = new Scanner (System.in);

System.out.println("Enter a sequence of integers separated by a combination of commas or spaces: ");
String in=scan.nextLine();
String[] holder=in.split(",| |, ");

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

nums[i]=Integer.parseInt(holder[i]);
System.out.print(nums[i]);
}


}
while (again=="y");

好的,谢谢大家,我按照接受的答案中的建议,通过将 nums 数组的长度初始化为 holder 数组的长度来使其工作。像这样:

int[] nums = new int[holder.length];

不过,我还有第二个问题,因为我的正则表达式似乎失败了,如果用“,”或“”而不是“,”来描述,我可以读取它有什么想法吗?

这是我的错误:

Enter a sequence of integers separated by a combination of commas or spaces: 
1, 2, 3
Exception in thread "main" 1java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at SortComparison.main(SortComparison.java:20)

最佳答案

您的空指针异常是由于您已将 nums 数组初始化为空,然后尝试在 for 循环中“指向”它。你可以去掉 int[] nums = null 并添加:

int[] nums = new int[holder.length];

就在 for 循环之前(显然是在创建 holder 数组之后)。

关于java - 使用定界符将字符串数组转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15861257/

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