java.lang.RuntimeException:无法编译的源代码 - 意外类型

时间:2016-10-25 11:25:16

标签: java android string

该程序从十六进制转换为二进制。 这是我的计划:

public static void main(String[] args) throws IOException {
    int nh = 0, k = 0, j = 0, w = 0, z = 0, lun = 0, r;
    String line;
    String nb = null;
    char nhc = 0;
    BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Inserire il numero in esadecimale");
    line = tastiera.readLine();
    lun = line.length();
    System.out.println(line);
    if (lun > 1) {
        lun--;
    }
    for (z = lun; z > 0; z--)
        nhc = line.charAt(z);
    {
        if (nhc == 'a' || nhc == 'A') {
            nhc = 10;
        }
        if (nhc == 'b' || nhc == 'B') {
            nhc = 11;
        }
        if (nhc == 'c' || nhc == 'C') {
            nhc = 12;
        }
        if (nhc == 'd' || nhc == 'D') {
            nhc = 13;
        }
        if (nhc == 'e' || nhc == 'E') {
            nhc = 14;
        }
        if (nhc == 'f' || nhc == 'F') {
            nhc = 15;
        }
        for (k = nhc, w = 0; k > 0 && w < lun * 4; k = k / 2, w++) {
            nb.charAt(w) = k % 2;
        }

    }
    System.out.println("Il numero binario è " + nb);
}

当我跑步时出现:

Inserire il numero in esadecimale
12
12
  

线程中的异常&#34; main&#34; java.lang.RuntimeException:无法编译的源代码 - 意外类型     必需:变量     发现:价值       在esadecimale.binario.EsadecimaleBinario.main(EsadecimaleBinario.java:56)   Java结果:1   建立成功(总时间:6秒)

1 个答案:

答案 0 :(得分:0)

您无法执行此任务:nb.charAt(w)= k%2; 这是左侧的值(chartAt(index)返回一个字符)并且无法分配给它。这就是运行时发生的事情......

检查answer。希望它有意义。