6

テキストフィールドから取得した文字列にカンマが含まれているかどうかを確認して、ドロップしてドット付きの新しい値を要求します。

使ってみます

  textTestAr.trim().matches("^[,]+$")     

しかし、これは何も起こりません

        ^[1-9,]+$      

トリックを行いますが、1のような数字にも一致します。

4

9 に答える 9

10

この問題に正規表現を強制する必要はありません。簡単textTestAr.indexOf(',')です。

于 2012-12-11T13:30:29.257 に答える
4

ここで正規表現の代わりにString#containsを使用してみませんか。

于 2012-12-11T13:31:07.663 に答える
4

カレット^はテキストの先頭と一致します。[,]+任意の数のコンマに一致します。必要なのは、探しているアイテムの前後のすべてを無視するものです。

^.*[,].*$

ドットは改行以外のすべての文字と一致します。*繰り返しです(0-任意の数)。はテキストの$終わりに一致します。

ここでは文字列のトリミングは不要であることに注意してください。

于 2012-12-11T13:32:03.840 に答える
4

ただやる if(textTestAr.contains(",")) System.out.println("It does!");

于 2012-12-11T13:32:15.697 に答える
3

ただやるtextTestAr.contains(",")

于 2012-12-11T13:31:15.620 に答える
2

最初のものは、文字列全体がコンマのみで構成されていると主張しています。2つ目は、文字列が数字(以外0)とコンマで構成されていることを示していますが、これらの特定の1つは必要ありません。あなたはこれを使うことができます:

.*,.*

^...$使用する場合は必要ないことに注意してくださいmatches(暗黙的であるため)。しかし、indexOfMarkoやyentupのような単純な解決策の方がとにかく優れています。

于 2012-12-11T13:30:46.637 に答える
1

正規表現でこれに直接答えるつもりです。

/,/

アルファベット、記号、または数字の1つまたは組み合わせを中に入れて、//それを具体的に一致させようとします。

于 2022-01-10T19:18:09.263 に答える
0

そのための正規表現は必要ありません:

textTestAr.trim().replace(',','.');
于 2012-12-11T13:31:44.220 に答える
0
    public  boolean hasComma(String string) {
    if ( string.indexOf(",") > -1) {
        return true;
    }
    return false;
}
于 2012-12-11T13:34:00.267 に答える