我不仅要查看如何操作,还要查看如何操作并为我不想要的角色生成错误消息。所以我的意思是我让用户输入输入,然后我想产生一个错误消息,如果用户输入的输入没有0或1.因此1121会产生错误,但是1101将是细
到目前为止我有这个,在shell中它会在每个字符后打印“错误”,即使它是正确的。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n;
System.out.print("Please enter a sequence of 1's and 0's");
String binInput = scan.nextLine();
System.out.println(binaryToDecimal(binInput));
char c;
for (int j = 0; j < binInput.length(); j++) {
c = binInput.charAt(j);
if (c<0 || c>1){
System.out.print("Error");}
}
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);
}
}
任何帮助将不胜感激
答案 0 :(得分:1)
像这样更改if语句
if (!(c == '0' || c == '1')){//...
这意味着 如果c不是字符0或chararcter 1
答案 1 :(得分:1)
c被定义为char,java允许chars使用关系运算符和等效运算符。 charAt(int)方法将特定的char拉出。在这种情况下,您应该将if语句更改为以下内容:
if(c != '0' && c != '1')
答案 2 :(得分:0)
O.K。让我们看看这段代码是否会给你一个错误。 (请确保您输入的内容不包含任何“空格”
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n;
System.out.print("Please enter a sequence of 1's and 0's");
String binInput = scan.nextLine();
// System.out.println(binaryToDecimal(binInput));
char c;
for (int j = 0; j < binInput.length(); j++) {
c = binInput.charAt(j);
if (!(c == '0' || c == '1')) {
System.out.print("Error");
}
}
我评论了一条陈述 - 它不相关......