Integer.parseInt : 冒泡排序中的 Java 错误



我多次遇到此错误。如何解决它.. 我已经在没有命令行参数的情况下解决了它,但现在这给了我一个错误。如何用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]);
}
}
}  

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]);
}

试试这个:

int num[];
for (int i = 0; i < len; i++) {
num[i] = Integer.parseInt(args[i]);
}

而不是:

int num[] = Integer.parseInt(args);

这是因为args变量是一个字符串数组,Integer.parseInt方法将单个字符串作为参数,而不是数组。

args不是单个字符串。它是一个字符串数组。可以使用以下代码将 String 数组参数解析为整数数组:

int[] num= Arrays.stream(args)
.mapToInt(Integer::parseInt)
.toArray();

最新更新