编写只接受java中某些字母的程序(异常处理)

时间:2016-03-17 19:42:49

标签: java exception-handling

我正在尝试用Java创建一个写一行字符的程序,但只有某些字符在这种情况下是“a”或“b”。我该怎么做?

现在它写了“ababbbabbaab”,但如果它写了“oohmtkgfgk”,它需要抛出异常。

public class Writer {
    public void writer() {
        try {
            FileWriter writer = new FileWriter("FSA.txt", true);
            writer.write("ababbbabbaab");
            writer.close();
        } catch (IOException e) {
            System.out.println("Error");
        }
    }
}

3 个答案:

答案 0 :(得分:0)

创建方法并验证要存储的字符串中是否存在 a b

实施例

 Null passed to a callee that requires a non-null argument

    object[PF_GROUP_USER] = [PFUser currentUser];
    object[PF_GROUP_NAME] = name;
    object[PF_GROUP_MEMBERS] = selection;
    object[PF_GROUP_FEATURED] = NO;
    object[PF_GROUP_ONHOLD] = NO;

答案 1 :(得分:0)

拆分字符串并检查所有字母是a还是b,如果没有抛出异常。

 public static void main(String[] args) {

     try {
            FileWriter writer = new FileWriter("FSA.txt", true);
            String str = "ababbbabbaabc";
            checkText(str);
            writer.write(str);
            writer.close();
        } catch (IOException e) {
            System.out.println("Error");
        }
}

private static void checkText(String string) throws IOException {
    for(String str: string.split("")) {
        if(str.equals("")) continue;
        if(!str.equals("a") && !str.equals("b")) throw new IOException();
    }       
}

答案 2 :(得分:0)

使用正则表达式 ^ [ab] * $ 来验证字符串,而不是拆分和迭代。保存代码行。此正则表达式验证文本是否仅包含[]内的字符,在您的情况下是a& b。

public static void main(String[] args) {

     try {
            FileWriter writer = new FileWriter("FSA.txt", true);
            String str = "ababbbabbaabc";
            validate(str);
            writer.write(str);
            writer.close();
        } catch (IOException e) {
            System.out.println("Error");
        }
}

private static void validate(String string) throws IOException {
    if(!string.matches("^[ab]*$"))
      throw new IOException();             
}