我多次出现此错误。如何解决..
我已经解决了它没有命令行参数,但现在这给了我一个错误。如何使用Integer.parseInt()
解决问题。
BubbleSort.java:24: error: incompatible types: String[] cannot be converted to String int num[] = Integer.parseInt(args); ^ Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output 1 error
class Demo {
static void bubble(int[] list) {
int temp = 0, k , j;
int n = list.length;
for(k = 0;k < n - 1;k++) {
for(j = 0;j < n - k - 1;j++) {
if(list[j] > list[j + 1]) {
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
public static void main (String[] args) {
int len=args.length;
int num[] = Integer.parseInt(args);
bubble(num);
for(int i = 0;i < len; i++) {
System.out.println("Array after bubble sort :" +args[i]);
}
}
}
答案 0 :(得分:4)
该行
int num[] = Integer.parseInt(args);
错了。查看错误消息,它清楚地表明此错误:parseInt(...)
不接受字符串数组而是使用单个字符串。用以下代码替换:
int[] num = new int[args.length];
for (int i = 0; i < args.length; i++) {
num[i] = Integer.parseInt(args[i]);
}
答案 1 :(得分:0)
试试这个:
int num[];
for (int i = 0; i < len; i++) {
num[i] = Integer.parseInt(args[i]);
}
而不是:
int num[] = Integer.parseInt(args);
这是因为args
变量是一个字符串数组,Integer.parseInt
方法将一个字符串作为参数,而不是一个数组。
答案 2 :(得分:0)
args
不是单个字符串。它是一系列字符串。您可以使用以下代码将String数组args解析为整数数组:
int[] num= Arrays.stream(args)
.mapToInt(Integer::parseInt)
.toArray();