2

たとえば、次のようなものがあります。

String s = "{\"ABC\"}:Mycontent{\"123\"}";

Mycontent{"123"} 部分だけを取得したいのですが、この部分は動的に変更できます。誰かがそれを行う方法を教えてもらえますか (高速パフォーマンス)?

4

2 に答える 2

4

文字列内の分割メソッドは、正規表現の一致の前後で文字列を分割できるため、このメソッドを使用できます。必要な文字列の位置が常に同じである場合は、subsequence メソッドを使用することもできます。また、substring メソッドを使用することもできます。多くの方法。個人的なお気に入りは部分文字列です

str2=str.substring(begin, [end]) 

必要ないので末尾に[]をつけました。終了インデックスを配置しない場合、部分文字列は文字列の最後まで続きます。両方のインデックスは整数でなければなりません。また、このメソッドは文字列を返します。

数値のサイズが動的に変化する場合 (たとえば、123 が 4567 に変わる) は、終了インデックスを使用せずに検索関数を使用して、文字列の最後の数字の後に来る文字を見つけることで解決できます (これはそうではないと思います)。 change) し、その文字を (replace メソッドを使用して) \0 に置き換えて、文字列がそこで終了するようにします。

私が言及したすべてのメソッドとその説明は、javadocにあります。

于 2012-10-28T14:23:48.330 に答える
2

文字列で indexOf を使用すると、次のように「:」の出現箇所を見つけて、そこから部分文字列を取得できます。

s.substring(s.indexOf(':') + 1)

これが上流システムからの構造化された出力である場合は、それを解釈する標準的な方法を探す必要があります (一見すると、JSON パーサーを使用する必要があることを意味する JSON のように見えます)。この入力のソースについて)。

于 2012-10-28T14:21:22.953 に答える