0

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

3 回答 3

3

线

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]);
}
于 2018-06-16T13:26:03.347 回答
0

尝试这个:

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

代替:

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

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

于 2018-06-16T13:28:50.763 回答
0

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

int[] num= Arrays.stream(args)
        .mapToInt(Integer::parseInt)
        .toArray();
于 2018-06-16T13:30:05.110 回答