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

时间:2018-06-16 13:21:18

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

3 个答案:

答案 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();