string alleen splitsen in eerste instantie – java

Ik wil een string splitsen op ‘=’ karakter. Maar ik wil dat het alleen in eerste aanleg wordt gesplitst. Hoe kan ik dat doen ? Hier is een JavaScript-voorbeeld voor ‘_’ char, maar het werkt niet voor mij
string alleen splitsen op eerste instantie van opgegeven teken

Voorbeeld:

apple=fruit table price=5

Als ik String.split(‘=’); het geeft

[apple],[fruit table price],[5]

Maar ik heb

[apple],[fruit table price=5]

Bedankt


Antwoord 1, autoriteit 100%

string.split("=", 2);

Als String.split(java.lang.String regex, int limit)legt uit:

De array die door deze methode wordt geretourneerd, bevat elke subtekenreeks van deze tekenreeks die wordt beëindigd door een andere subtekenreeks die overeenkomt met de gegeven uitdrukking of wordt beëindigd aan het einde van de tekenreeks. De substrings in de array staan ​​in de volgorde waarin ze in deze string voorkomen. Als de uitdrukking met geen enkel deel van de invoer overeenkomt, heeft de resulterende array slechts één element, namelijk deze string.

De parameter limitbepaalt het aantal keren dat het patroon wordt toegepast en beïnvloedt daarom de lengte van de resulterende array. Als de limiet ngroter is dan nul, wordt het patroon maximaal n– 1 keer toegepast, de lengte van de array is niet groter dan n, en de laatste invoer van de array bevat alle invoer buiten het laatste overeenkomende scheidingsteken.

De string boo:and:foolevert bijvoorbeeld de volgende resultaten op met deze parameters:

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" }

Antwoord 2, autoriteit 4%

Ja dat kan, geef gewoon de integer-parameter door aan de split-methode

String stSplit = "apple=fruit table price=5"
stSplit.split("=", 2);

Hier is een Java-documentreferentie: String#split(java.lang.String, int)


Antwoord 3, autoriteit 2%

Zoals veel andere antwoorden de limietbenadering suggereren, kan dit ook op een andere manier zijn

U kunt de indexOfmethode op String die het eerste voorkomen van het gegeven teken retourneert, met behulp van die index kun je de gewenste uitvoer krijgen

String target = "apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));

Antwoord 4

String string = "This is test string on web";
String splitData[] = string.split("\\s", 2);
Result ::
splitData[0] =>  This
splitData[1] =>  is test string  
String string = "This is test string on web";
String splitData[] = string.split("\\s", 3);
Result ::
splitData[0] =>  This
splitData[1] =>  is
splitData[1] =>  test string on web

Standaard maakt de split-methode n aantallen arrays op basis van de gegeven regex. Maar als u het aantal arrays dat u wilt maken na een splitsing wilt beperken, geef dan het tweede argument door als een geheel getal.

Other episodes