こんにちは、Javaでネストされた文字列を検証する最良の方法は何ですか?Javaでネストされた文字列を検証する
サンプルの有効な文字列は[aaaa {bbb}] で、[{ss]}はそうではありません。
ありがとうございます!
こんにちは、Javaでネストされた文字列を検証する最良の方法は何ですか?Javaでネストされた文字列を検証する
サンプルの有効な文字列は[aaaa {bbb}] で、[{ss]}はそうではありません。
ありがとうございます!
あなたはそれより少し具体的でなければならない、私は恐れている。特定の部分文字列を探しているだけの場合は、String.contains()
があります。「aaabbb cccddd eeefff」のようなものを検証したい場合は、それぞれの文字が3文字であるかどうかを確認する必要があります。
私はスタックを使用します。文字列の文字を繰り返し処理し、開いている中括弧が表示されるたびに、対応する閉じ括弧をスタックにプッシュします。閉じ括弧が表示されるたびに、スタックの一番上に一致するかどうかをチェックします。もしそうなら、私はスタックからキャラクターをポップし、続ける。それ以外の場合は、無効な文字列です。
「{」と「}」で文字列を分割し、トークンをスタックにプッシュします。最後の「}」に達するまでにすべてがチェックアウトされるかどうかを確認してください。
私はスタックの答えが好きですが、有効な文字列の規則によっては複雑になることがあります。有効な文字列を記述するための文法を構築できれば、おそらくANTLRのようなものを使ってパーサーを生成できます。
あなたはそれに私を打つ:) – Geo