0

形式のファイルから入力を取得する必要があります

2 (3,4) (5,6) 3 (6,5) (7,8)

整数値だけを変数に格納したいのですが、括弧とコンマは必要ないので、パターンマッチを使用してこれを取得するにはどうすればよいですか?

4

3 に答える 3

1

私は、正規表現を使用できる String メソッドの分割を好みます。タイプ ArrayList<Integer> の contents という名前のインスタンス変数をインスタンス化したと仮定して、ファイルからの入力の各行に対して実行するコードの例を次に示します。

public void readLine(String line) {
    String delimiters = "[ ,()]+"; // regular expression
    String[] tokens = line.split(delimiters);
    for (String token : tokens) {
        try {
            Integer i = Integer.parseInt(token); // convert String to Integer
            contents.add(i);
        } catch (NumberFormatException e) {
            // TODO: handle exception
        }
    }
}

split メソッドは、いくつかの余分な (空の) トークンを作成しますが、try/catch はそれを排除します。お役に立てれば。

于 2012-09-17T19:21:20.027 に答える
0

を使用String#replaceAll("[^0-9]", "")して、数値以外の文字を削除しInteger.valueOf(String)、整数を取得できます。

于 2012-09-13T09:26:01.503 に答える
0

を使用してファイルから直接整数を読み取り、 を使用java.util.Scannerして区切り文字を指定できます。区切りScanner.useDelimiter(Pattern)文字は正規表現になります ("[,() ]{1,}"たとえば)。ScannerメソッドhasNextInt()nextInt()を使用して整数を読み取ることができます。

于 2012-09-13T09:28:21.957 に答える