我有代码可以逐行检查文本文件,但我不确定如何检查特定格式。如果文本文件采用以下格式,则打印出内容,否则显示一条消息,提示“文件不正确”。
的第一行应该以 S 开头,每一行由任何大写字母组成,后跟一个冒号,而不是任何字母、数字或 e。
我有代码可以逐行检查文本文件,但我不确定如何检查特定格式。如果文本文件采用以下格式,则打印出内容,否则显示一条消息,提示“文件不正确”。
的第一行应该以 S 开头,每一行由任何大写字母组成,后跟一个冒号,而不是任何字母、数字或 e。
您可以使用正则表达式轻松验证格式:
//first line validator:
String reg1 = "S:[A-Z01e]";
//next lines validator:
String reg2 = "V:[A-Z01e]?[A-Z01e]?[A-Z01e]";
//examples/test cases:
System.out.println("S:1".matches(reg1));
System.out.println("S:3".matches(reg1));
System.out.println("S:11".matches(reg1));
System.out.println("V:1e0".matches(reg2));
System.out.println("V:1e01".matches(reg2));
System.out.println("V:1e3".matches(reg2));
正则表达式是:首先S
或V
分别,然后:
,然后是 AZ ot 0 或 1 或 e 之间的任何字符。
表示 0 或 1 重复,因此
表示1-3 个字符,每个 AZ 或 0 或 1 或 e。?
[A-Z01e]?[A-Z01e]?[A-Z01e]
我会charAt(1)
在每一行上使用。
scan.nextLine();
String line = scanner.next();
if(line.charAt(0).equals("S")) {
} else {
}
我很确定这就是它的工作原理