3

テキストファイルを1行ずつチェックするコードはありますが、特定の形式をチェックする方法がわかりません。テキストファイルが次の形式の場合はコンテンツを印刷し、そうでない場合は「ファイルが正しくありません」というメッセージを表示します。

の最初の行は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));

正規表現は次のとおりです。最初にSまたはVそれぞれ、次に:、次に AZ ot 0 または 1 または e の間の任意の文字。
?0 または 1 の繰り返しを[A-Z01e]?[A-Z01e]?[A-Z01e]意味するため、それぞれ AZ または 0 または 1 または e の 1 ~ 3 文字を意味します。

于 2012-10-21T15:27:27.410 に答える
0

これを実現するために正規表現を使用できます: Regex Trails

たとえば、 を確認するにはV:xxx、次を使用できます。

V:[A-Z01e]{3}

中括弧内の数字は、必要な x の数です。

于 2012-10-21T15:27:38.147 に答える
0

charAt(1)各行で使用します。

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

} else {

}

それがどのように機能するかはかなり確信しています

于 2012-10-21T15:27:16.687 に答える