3

我有代码可以逐行检查文本文件,但我不确定如何检查特定格式。如果文本文件采用以下格式,则打印出内容,否则显示一条消息,提示“文件不正确”。

的第一行应该以 S 开头,每一行由任何大写字母组成,后跟一个冒号,而不是任何字母、数字或 e。

4

3 回答 3

1

您可以使用正则表达式轻松验证格式:

//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));

正则表达式是:首先SV分别,然后:,然后是 AZ ot 0 或 1 或 e 之间的任何字符。 表示 0 或 1 重复,因此
表示1-3 个字符,每个 AZ 或 0 或 1 或 e。?[A-Z01e]?[A-Z01e]?[A-Z01e]

于 2012-10-21T15:27:27.410 回答
0

我会charAt(1)在每一行上使用。

scan.nextLine();
String line = scanner.next();
if(line.charAt(0).equals("S")) {

} else {

}

我很确定这就是它的工作原理

于 2012-10-21T15:27:16.687 回答
0

您可以使用正则表达式来实现这一点:Regex Trails

例如,要检查V:xxx,您可以使用:

V:[A-Z01e]{3}

花括号中的数字是你想要多少个x。

于 2012-10-21T15:27:38.147 回答