web-dev-qa-db-ja.com

最初のインスタンスでのみ文字列を分割-java

「=」文字で文字列を分割したい。しかし、最初のインスタンスでのみ分割したいです。どうやってやるの ? 「_」文字のJavaScriptの例を次に示しますが、私には機能しません 指定した文字の最初のインスタンスでのみ文字列を分割します

例:

Apple=fruit table price=5

String.split( '=');を試すときそれは与えます

[Apple],[fruit table price],[5]

しかし、私は必要です

[Apple],[fruit table price=5]

ありがとう

112
dracula
string.split("=", 2);

String.split(Java.lang.String regex, int limit) の説明:

このメソッドによって返される配列には、指定された式に一致する別のサブストリングで終了するか、ストリングの終わりで終了するこのストリングの各サブストリングが含まれます。配列内の部分文字列は、この文字列内で出現する順序です。式が入力のどの部分とも一致しない場合、結果の配列には要素が1つだけ、つまりこの文字列が含まれます。

limitパラメーターは、パターンが適用される回数を制御するため、結果の配列の長さに影響します。制限がある場合 n ゼロより大きい場合、パターンは最大で適用されます n -1回、配列の長さは n、配列の最後のエントリには、最後に一致した区切り文字を超えるすべての入力が含まれます。

たとえば、文字列boo:and:fooは、これらのパラメーターで次の結果を生成します。

Regex Limit    Result
:     2        { "boo", "and:foo" }
:     5        { "boo", "and", "foo" }
:    -2        { "boo", "and", "foo" }
o     5        { "b", "", ":and:f", "", "" }
o    -2        { "b", "", ":and:f", "", "" }
o     0        { "b", "", ":and:f" }
225
Zaheer Ahmed

はい、できます。整数パラメータをsplitメソッドに渡すだけです

String stSplit = "Apple=fruit table price=5"

stSplit.split("=", 2);

Java docリファレンスは次のとおりです。 String#split(Java.lang.String、int)

9
codeMan

他の多くの答えが制限アプローチを示唆しているように、これは別の方法です

Stringで indexOf メソッドを使用すると、指定された文字の最初の発生を返します。そのインデックスを使用すると、目的の出力を取得できます。

String target = "Apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));
5
Siva
String slpitString[] = stringInToSearch.split("pattern", 2);
0
Kailash Karki

このコードを試してください...

その働き。

public class Split
{
    public static void main(String...args)
    {
        String a = "%abcdef&Ghijk%xyz";
        String b[] = a.split("%", 2);

        System.out.println("Value = "+b[1]);
    }
}
0
Bhola