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
limit
bepaalt 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:foo
levert 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.