web-dev-qa-db-fra.com

scinder la chaîne uniquement en première instance - java

Je veux diviser une chaîne par '=' charecter. Mais je veux qu'il se scinde en première instance seulement. Comment puis je faire ça ? Voici un exemple JavaScript pour le caractère '_' mais cela ne fonctionne pas pour moi chaîne divisée uniquement à la première instance du caractère spécifié

Exemple :

Apple=fruit table price=5

Quand j'essaye String.split ('='); il donne

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

Mais, j'ai besoin

[Apple],[fruit table price=5]

Merci

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

Comme String.split(Java.lang.String regex, int limit) explique:

Le tableau renvoyé par cette méthode contient chaque sous-chaîne de cette chaîne qui se termine par une autre sous-chaîne correspondant à l'expression donnée ou se termine à la fin de la chaîne. Les sous-chaînes du tableau sont dans l'ordre dans lequel elles apparaissent dans cette chaîne. Si l'expression ne correspond à aucune partie de l'entrée, le tableau résultant ne contient qu'un seul élément, à savoir cette chaîne.

Le paramètre limit contrôle le nombre d'applications du motif et affecte donc la longueur du tableau résultant. Si la limite n est supérieur à zéro, le motif sera appliqué au maximum n - 1 fois, la longueur du tableau ne sera pas supérieure à net la dernière entrée du tableau contiendra toutes les entrées au-delà du dernier délimiteur mis en correspondance.

La chaîne boo:and:foo, par exemple, donne les résultats suivants avec ces paramètres:

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" }
233
Zaheer Ahmed

Oui, vous pouvez simplement passer le paramètre entier à la méthode split

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

stSplit.split("=", 2);

Voici une référence à la doc Java: String # split (Java.lang.String, int)

10
codeMan

Comme beaucoup de réponses suggèrent l'approche limite, cela peut être une autre façon

Vous pouvez utiliser la méthode indexOf sur String qui renvoie la première occurrence du caractère donné. En utilisant cet index, vous pouvez obtenir le résultat souhaité.

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

Essayez ce code ...

Ça marche.

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