虽然我使用了Interger.parseInt

时间:2016-10-26 06:32:01

标签: java compiler-errors

    My program is to sort numbers in ascending order and finally merge the answer which should also be in ascending order.
    Compilation Errors -
    **My Error****
    Main.java:71: error: incompatible types
    k=Integer.parseInt(res);
    ^
    required: int[]
    found: int
    1 error

我已经尝试了很多来删除此错误,但找不到任何逻辑。

    **this my code**
import java.util.Scanner;
    import java.util.Arrays;
    public class Main
    {

        public static void main(String[]args)
        {
            int w=0,x=0;
            int[] k=new int[100];
            Scanner sc=new Scanner(System.in);
         int   n=sc.nextInt();
            if(n<0)
            {
                System.out.println("Invalid Input");
                System.exit(1);
                        }
              int[] m=new int[n];
              for(int i=0;i<n;i++)
              {
                  m[i]=sc.nextInt();
              }
              for(int i=0;i<n;i++)
              {
                for(int j=i+1;j<n;j++) 
                {
                    if(m[i]>m[j])
                    {
                        int temp=m[i];
                        m[i]=m[j];
                        m[j]=temp;
                    }
                }
              }
              for(int i=0;i<n;i++)
              {
                  System.out.print(m[i]+" ");
              }
              w=m[n-1];
              System.out.print(w);

    int v=sc.nextInt();
    if(v<0)
    {
        System.out.print("Invalid Input");
        System.exit(1);
    }
    int[]r=new int[v];
    for(int i=0;i<v;i++)
    {
        r[i]=sc.nextInt();
        }
        for(int i=0;i<v;i++)
        {
            for(int j=i+1;j<v;j++)
            {
                if(r[i]>r[j])
                {
                    int temp=r[i];
                    r[i]=r[j];
                    r[j]=temp;
                }
            }
        }
        for(int i=0;i<v-1;i++)
        {
            System.out.print(r[i]+" ");
        }
        x=r[v-1];
        System.out.print(x);
            String res=" "+w+x;
             k=Integer.parseInt(res);// error in this line;
        Arrays.sort(k);
        System.out.println(k);

    }
    }`

最后的K用于合并w和x的输出,它也应该按升序排列。 有没有其他方法来解决这个问题。 提前谢谢

3 个答案:

答案 0 :(得分:1)

您需要将返回的值分配给数组中的实际值(单元格),如:

for(int i=0; i<v; i++) {
      ....
    k[i] = Integer.parseInt(res);
      ...
}

答案 1 :(得分:0)

kint[](数组int)而不是int

因此

k = Integer.parseInt(res);

应该是

k[someIndex] = Integer.parseInt(res);

答案 2 :(得分:0)

我同意伊兰的观点。 不兼容的类型通常表示=的左侧部分和=的右侧部分不是同一类型。这不是一个困难的错误。 在你的情况下,右边的部分是一个int,而左边的部分是int数组,所以只需在左边部分添加索引就可以了。