Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java错误进行十进制到二进制的转换_Java - Fatal编程技术网

使用java错误进行十进制到二进制的转换

使用java错误进行十进制到二进制的转换,java,Java,我有点困惑我的程序是正确的还是我遗漏了什么 我可以从中获得输出 public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Enter you String: "); String bin = sc.nextLine(); int length = bin.length(); int j = 0; int sum

我有点困惑我的程序是正确的还是我遗漏了什么

我可以从中获得输出

public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter you String: ");
    String bin = sc.nextLine();

    int length = bin.length();
    int j = 0;
    int sum = 0;

    if (length != 0) {
        for (int i = length - 1; i >= 0; i--) {
            if (bin.charAt(i) == "0" || bin.charAt(i) == "1") {
                String s = bin.charAt(j) + "";
                sum = (int) (sum + (Integer.valueOf(s)) * (Math.pow(2, i)));
                j++;
            } else {
                System.out.println("illegal input.");
            }
        }
        System.out.println(sum);
    } else {
        System.out.println("illegal input.");

    }
}

删除此行的引号:

if (bin.charAt(i) == "0" || bin.charAt(i) == "1") {
应该成为

if (bin.charAt(i) == 0 || bin.charAt(i) == 1) {
以下代码可以正常工作:

import java.util.Scanner;

public class test {
public static void main (String args []) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter you String: ");
    String  bin = sc.nextLine();

    int length = bin.length();
    int j = 0;
    int sum = 0;

    if (length != 0) {
        for (int i = length - 1; i >= 0; i--) {
            if (bin.charAt(i) == '0' || bin.charAt(i) == '1') {
                String s = bin.charAt(j) + "";
                sum = (int) (sum + (Integer.valueOf(s)) * (Math.pow(2, i)));
                j++;
            } else {
                System.out.println("illegal input.");
            }
        }
        System.out.println(sum);
    } else {
        System.out.println("illegal input.");

    }
}
}

你的意思是
if(bin.charAt(i)='0'| | bin.charAt(i)='1'){
注意单引号
我修复了该部分,但程序仍然在导入java.util.*时抛出一个错误;你需要单引号:0应该是
'0'
,1的单引号相同。行上的连续语句必须用“;”和on分隔“publicstaticvoidmain(stringargs[]){”语句==异常声明它抛出了什么错误?对于输入“0123456”和“kaan”,它可以正常工作: