【问题标题】:How to display error message if a character other than "1" and "0" is entered?如果输入“1”和“0”以外的字符,如何显示错误消息?
【发布时间】:2017-02-15 22:16:23
【问题描述】:

我编写了一个 java 程序,将一串位转换为其等效的非负整数,但我不知道如何在显示“1”和“0”以外的字符时添加错误消息。我想要以下消息“错误 - 字符串应仅由 1 和 0 组成。”打印和程序停止。请帮忙!到目前为止,这是我的代码:

import java.util.Scanner;
class BinaryToDecimal {
   public static void main(String args[]) {
    Scanner input = new Scanner( System.in );
    System.out.print("Enter a binary number: ");
    String binaryString =input.nextLine();
    System.out.println ("The  original string you entered:" binaryString);
    System.out.println ("The equivalent integer is: "+Integer.parseInt(binaryString,2));
    }
}

【问题讨论】:

标签: java error-handling binary integer


【解决方案1】:

进行验证的一种常见方法是使用Regular expressions,在这种情况下,您要查找的模式是0 or 1

System 已经有显示错误和/或退出程序执行的方法

【讨论】:

    【解决方案2】:

    您可以在每次调用 nextLine() 后检查字符是否不是 1 或 0。即:

    String binaryString = input.nextLine();
    for(char c : binaryString.toCharArray())
    {
        if(!((c == '1') && (c == '0'))) System.err.println(ERROR_MESSAGE);
    }
    

    如果输入了不正确的字符,则打印到标准错误流 System.err(这正是错误消息的作用)。请注意,如果输入了不正确的字符,您可能还需要包含一些阻止程序尝试转换二进制文件的代码。

    【讨论】:

    • 那种代码会给你任何输入的错误消息... c不能同时是'1'和'0':)试试c!='1' && c!='0'作为if条件:)
    • 谢谢。是的,那肯定行不通哈哈。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多