2

マッチャーについて質問です。現在、文字列を読み取り、すべての数字を配列に格納しようとしています。私の質問は、整数と小数の両方をどのように一致させようとするのですか?

私はと呼ばれるdoubleの配列を持っています:

double[] thisArray = 新しい double[20];

この配列に、文字列から抽出したすべての数値を格納しようとしています。

マッチャー temp = Pattern.compile("(\d+)").matcher(x);

それがマッチャーの私の機能です。ただし、これは整数にのみ一致します。(5.2)のように整数と小数の両方にマッチさせたい。しかし、どうすればこれを行うことができますか?文字列に整数と小数の両方を入力できるようにしたいと考えています。

どんな助けでも大歓迎です。ありがとう!

4

2 に答える 2

3

これは整数と小数の両方を処理します:-

private Pattern p = Pattern.compile("\\d+(\\.\\d+)?");

@Test
public void testInteger() {
    Matcher m =p.matcher("10");

    assertTrue(m.find());
    assertEquals("10", m.group());
}

@Test
public void testDecimal() {
    Matcher m =p.matcher("10.99");

    assertTrue(m.find());
    assertEquals("10.99", m.group());
}
于 2011-02-16T02:36:34.370 に答える
0

フレーズ\d+は数字の文字列と一致します。では、それらのうちの 2 つの間にドットを追加するのはどうでしょうか。 (\d+)|(\d+|\.\d+)

于 2011-02-16T02:20:55.047 に答える