2014-04-28 5 views
0

J'ai un String comme param1=HUvguys83789r8==== je dois diviser cela avec = délimiteur. J'ai essayé avec String.split("=") aussi bien que j'ai employé StringUtils aussi mais je ne peux pas le diviser correctement. Quelqu'un peut-il m'aider pour cela.Séparer la chaîne avec délimiteur

String parameters = "param1=HUvguys83789r8====" 
String[] string = StringUtils.split(parameters, "="); 
parameters.split("="); 

Et je suis ma sortie comme [param1, HUvguys83789r8]

j'ai besoin de la sortie comme [param1, HUvguys83789r8====]

+0

Quelle sortie attendez-vous? –

+0

@ashokramcse qu'est-ce que vous attendez –

+0

tout ce que vous obtenez est correct seulement, son fractionnement à '=' – aelor

Répondre

3

Vous voulez vraiment seulement diviser sur la première occurrence de =, il ne faut que

parameters.split("=", 2) 

Les surchargées split(String, int) états javadoc

Si le n limite est supérieure à zéro alors le modèle sera appliqué au plus n - 1 fois, la longueur du tableau ne sera pas supérieure à n, et la dernière entrée du tableau contiendra toutes les entrées au-delà du dernier délimiteur .

1

Je pense que vous avez besoin:

String parameters = "param1=HUvguys83789r8===="; 
    String[] string = parameters.split("\\w=\\w"); 
    String part1 = string[0]; // param 
    String part2 = string[1]; // Uvguys83789r8==== 
    System.out.println(part1); 
    System.out.println(part2); 

assurez-vous d'échapper aux barres obliques pour le rendre java conforme

+0

Pouvez-vous poster votre réponse plus claire depuis .split (/ \ w = \ w /) il n'était pas clair – ashokramcse

+1

@ashokramcse mis à jour la réponse pour le rendre plus clair – aelor

2

J'utiliser String#indexOf(char ch) comme si,

private static String[] splitParam(String in) { 
    int p = in.indexOf('='); 
    if (p > -1) { 
    String key = in.substring(0, p); 
    String value = in.substring(p + 1); 
    return new String[] {key, value}; 
    } 
    return null; 
} 

public static void main(String[] args) { 
    String parameters = "param1=HUvguys83789r8===="; 
    System.out.println(Arrays.toString(splitParam(parameters))); 
} 

sortie est

[param1, HUvguys83789r8====] 
+0

+1 pour une solution simple, qui peut être comprise lors du retour au code dans six mois. –

+0

@ Java1 ce qui semble simple dans ce domaine? Imo split était plus simple – aelor

+0

@aelor 'split' est facile, et la réponse acceptée est très bien. J'ai juste un problème avec ppl utilisant dur pour se souvenir de regex quand une solution simple existe. Six mois plus tard, 'ah ah, qu'est-ce que '\\ w = \\ w' signifie encore' –

2

juste de se séparer une fois en utilisant la version alternative de split():

String[] strings = parameters.split("=", 2); // specify max 2 parts 

Code d'essai:

String parameters = "param1=HUvguys83789r8===="; 
String[] strings = parameters.split("=",2); 
System.out.println(Arrays.toString(strings)); 

Sortie:

[param1, HUvguys83789r8====] 
Questions connexes