使用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”,它可以正常工作: