所以我在使用这个程序时遇到问题,我必须让用户输入一个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是错误的,但我不知道怎么写它来正确转换。
答案 0 :(得分:1)
<强>提示强>
您无法在n.length()
上执行n.charAt()
或int
(基本上是字符串操作)。将n
更改为字符串。
因此,只要您需要n
作为整数,请使用Integer.parseInt(n)
,当您需要n
作为字符串时,请使用Integer.toString(n)
。