Java 如何创建一个按整数的单个字符读取整数的循环

Java 如何创建一个按整数的单个字符读取整数的循环,java,recursion,compiler-errors,binary,Java,Recursion,Compiler Errors,Binary,所以这个程序有问题,我必须让用户输入一个0和1的序列。然后我必须使用递归来计算非负int并打印它。这是我目前拥有的代码,它可以编译 import java.util.Scanner; public class Bin { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("Please enter a sequence of 1'

所以这个程序有问题,我必须让用户输入一个0和1的序列。然后我必须使用递归来计算非负int并打印它。这是我目前拥有的代码,它可以编译

import java.util.Scanner;

public class Bin {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

    System.out.print("Please enter a sequence of 1's and 0's");
    String binInput = scan.next();
    System.out.println(binaryToDecimal(binInput));
  }

  public static int binaryToDecimal(String binString) {
    int size = binString.length();

    if (size == 1) {
        return Integer.parseInt(binString);
    } else {
        return binaryToDecimal(binString.substring(1, size)) + Integer.parseInt(binString.substring(0, 1)) * (int) Math.pow(2, size - 1);
    }

  }
  }
问题是创建一个读取用户输入的int的东西,例如11101,然后逐个数字地读取它,以检查其中是否有任何其他数字。如果用户输入一个非1或0的数字,它应该打印一个错误,我有代码。这就是我所拥有的:

for (int index = 0; index < n.length();
    index++) {
    char aChar = n.charAt(index);
    }
现在我知道n.charAtindex和n.length是错误的,但我不知道如何编写它来正确转换

提示

不能对int执行n.length或n.charAt字符串操作。请将n更改为字符串


因此,当您需要n作为整数时,请使用Integer.parseIntn;当您需要n作为字符串时,请使用Integer.toString。

您不能对int调用任何方法。考虑到您不使用aChar,您也不清楚要尝试做什么。有太多问题需要回答。首先,n是一个整数,不能对它调用charAt。如果n<0 | | n>1为什么要投反对票?请提及作为评论,以便我可以改进。