2

現在、次の形式でいくつかの基本的なセルを読み取ろうとしています。

+-------+-------+
|       |       |
+-------+-------+

ここで、セルの内容の文字列表現を取得し、それを別のメソッドに送信する必要があります。問題は、セルの長さが事前に定義されていないことです。私はこれらをファイルから読み取っているので、私の最も簡単なオプションは、既にセットアップしたスキャナーを使用することです。問題は、この場合の方法がよくわからないことです。

どうにかしてパターンを使いたいという気持ちが強いのですが、どうしたらいいのか途方に暮れています。

どうにかしてそれを構築することもできますが、それは非常に遅いと思います.

4

1 に答える 1

1

Scanner の javadoc を参照してください。例があります。

String input = "1 fish 2 fish red fish blue fish";
 Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
 System.out.println(s.nextInt());
 System.out.println(s.nextInt());
 System.out.println(s.next());
 System.out.println(s.next());
 s.close(); 

次の出力を出力します。

 1
 2
 red
 blue 

|区切り文字として使用できます。

編集:|区切り文字として使用するには、エスケープする必要があります。\\s*\\|\\s*またはを使用し\\s*[|]\\s*ます。そのまま使用すると、最初の値と例外|のみが取得されます。1InputMismatchException

以下のプログラムと出力を参照してください。

public class Test {
    public static void main(String[] args) {
        String input = "1 | 2 | red | blue |";
        Scanner s = new Scanner(input).useDelimiter("\\s*\\|\\s*"); // or use "\\s*[|]\\s*"
        System.out.println(s.nextInt());
        System.out.println(s.nextInt());
        System.out.println(s.next());
        System.out.println(s.next());
        s.close();
    }
}

出力:

1
2
red
blue
于 2012-10-20T04:57:16.213 に答える