文字列がテキストフィールドから取るかどうかを確認したい にはカンマがあり、それを削除してドットで新しい値を要求します。このカンマ(例えば1,5)を含む文字列に一致する
^[1-9,]+$
は、トリックを行いますが、一方でまた、あなたが強制する必要はありません。1.
文字列がテキストフィールドから取るかどうかを確認したい にはカンマがあり、それを削除してドットで新しい値を要求します。このカンマ(例えば1,5)を含む文字列に一致する
^[1-9,]+$
は、トリックを行いますが、一方でまた、あなたが強制する必要はありません。1.
キャレット^
は、テキストの先頭にマッチします。 [,]+
は任意の数のカンマに一致します。何が必要なのあなたが探しているアイテムの前や後に、すべてを無視するものである:
^.*[,].*$
ドットは改行以外の任意の文字に一致します。 *
は繰り返し(0 - 任意の数)です。
ここで文字列をトリミングする必要はありません。
のような数字に一致し、
iは
textTestAr.trim().matches("^[,]+$")
を使用しようとするが、何も起こりませんこの問題に関する正規表現。シンプルでtextTestAr.indexOf(',')
となります。
私は同意しません。より良いマスターと 'indexOf'とお友達とこれまで以上に必要なツールをスティック。 – krlmlr
@ user946850真のマスターは、すべての使用可能な楽器を均等な猶予で使用します。これがルビやperlの場合、正規表現ですべてを処理するのは慣用的ですが、Java正規表現ではファーストクラスの市民ではありません。 –
コードの次の要件は、数字と1つのドットのみで構成されているかどうかを確認することですか?他の文字もチェックしたいのですか?または...正規表現を代替で変更しようとする試みを比較する:まず「シンプルな」ツールを使用する(一致するものが見つからなければ何が起こるか?-1?例外?APIを見てみよう...)とにかく "the"ツールが必要であることを示しています。 – krlmlr
最初の文字列は、文字列全体がコンマのみで構成されていることを示しています。 2番目の文字列は、文字列が数字(0
以外)とカンマで構成されていると主張していますが、特定のものは必要ありません。 (彼らは暗黙的であるため)matches
を使用するときに^...$
を必要としない
.*,.*
注:あなたは、これを使用することができます。とにかく簡単なindexOf
ソリューションは、Markoやyentupの方が優れています。
なぜ正規表現の代わりにString#containsを使用しないでください。
はちょうどそのために正規表現を必要としないでください
textTestAr.contains(",")
の操作を行います。
textTestAr.trim().replace(',','.');
だけで行う if(textTestAr.contains(",")) System.out.println("It does!");
public boolean hasComma(String string) {
if (string.indexOf(",") > -1) {
return true;
}
return false;
}
'マッチ( "")'が悪いのか? – djechlin
@djechlin 'matches'は文字列全体と一致する必要があります –