gpt4 book ai didi

Java 合并来自用户输入的两组数组 - 如何处理空值?

转载 作者:行者123 更新时间:2023-12-01 15:57:36 26 4
gpt4 key购买 nike

我正在编写一个用于 CS 类(class)作业的程序。

基本上,它是一种接受命令行参数的方法。像 CSV 之类的东西,因此要调用我执行的调用,请先合并,然后是 csv。

例如合并 1,2,3,4 5,6,7,8

这会做两件事。 1) 它将每个列表作为数组参数,然后合并为 1 个大数组,2) 对该数组进行排序。

这里有一个问题,我们需要从命令行处理空值。因此用户可以输入:

合并 1,2,,3,4 5,6

我该如何处理这个问题?

错误输出示例:

Enter commands:
merge 12,,2 43
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:493)
at java.lang.Integer.parseInt(Integer.java:514)
at CmdInterpreter.strArrayToIntArray(CmdInterpreter.java:143)
at CmdInterpreter.getIntArray(CmdInterpreter.java:130)
at Assign1.processOneCommand(Assign1.java:99)
at CmdInterpreter.processCommands(CmdInterpreter.java:198)
at CmdInterpreter.processCommands(CmdInterpreter.java:230)
at CmdInterpreter.ooMain(CmdInterpreter.java:243)
at MyAssign1.main(MyAssign1.java:20)

最佳答案

当您调用 parseInt 时,请将调用包装在 try/catch block 中。如果捕获 NumberFormatException,则丢弃该字符串并减少值的数量。

编辑:你是怎么做到的?像这样的事情:

int[] extractValues(String arg) {
String[] sValues = arg.split(",");
int n = values.length;
int[] values = new int[n];
for (int i = 0; i < n; ++i) {
try {
values[i] = Integer.parseInt(sValues[i]);
} catch (NumberFormatException e) {
--n;
}
}
// reallocate values array if there were problems
if (n < values.length) {
int[] tmp = new int[n];
System.arraycopy(values, 0, tmp, 0, n);
values = tmp;
}
return values;
}

关于Java 合并来自用户输入的两组数组 - 如何处理空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4801658/

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