如何创建一个循环,按其个别角色读取整数

时间:2018-02-14 04:06:19

标签: 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'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.charAt(索引)和n.length是错误的,但我不知道怎么写它来正确转换。

1 个答案:

答案 0 :(得分:1)

<强>提示

您无法在n.length()上执行n.charAt()int(基本上是字符串操作)。将n更改为字符串。

因此,只要您需要n作为整数,请使用Integer.parseInt(n),当您需要n作为字符串时,请使用Integer.toString(n)