テキストファイルを1行ずつチェックするコードはありますが、特定の形式をチェックする方法がわかりません。テキストファイルが次の形式の場合はコンテンツを印刷し、そうでない場合は「ファイルが正しくありません」というメッセージを表示します。
の最初の行はSで始まる必要があり、すべての行は大文字、数字、またはeの後にコロンが続きます。
テキストファイルを1行ずつチェックするコードはありますが、特定の形式をチェックする方法がわかりません。テキストファイルが次の形式の場合はコンテンツを印刷し、そうでない場合は「ファイルが正しくありません」というメッセージを表示します。
の最初の行は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 の繰り返しを[A-Z01e]?[A-Z01e]?[A-Z01e]
意味するため、それぞれ AZ または 0 または 1 または e の 1 ~ 3 文字を意味します。
charAt(1)
各行で使用します。
scan.nextLine();
String line = scanner.next();
if(line.charAt(0).equals("S")) {
} else {
}
それがどのように機能するかはかなり確信しています