我正在尝试用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");
}
}
}
答案 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();
}