2010-02-01 4 views
0

Comment puis-je le montrer? sous-chaîne? split? ...Trouver une chaîne dans une chaîne

mais c'est peut-être dynamique !!!

String str = "SET ENCALSUP=NOENCR&GSMV2,MAXNCELL=16,TDTMWIND=5,MAXLAPDMN=5,EENHDTMSUP=DISABLED,T3197=4,PAGCOORCLB=DISABLED,DGRSTRGYBCNT=DISABLED,PAGQOVLIND=0;"; 

cette sortie (EENHDTMSUP = désactivé):

juste cette

DISABLED 

Merci ...

+0

Je suis un peu confus. Voulez-vous afficher chaque paire clé-valeur? –

+12

Vous n'avez pas spécifié sur quels critères la sous-chaîne doit être sélectionnée. Actuellement, la réponse à votre question est 'System.out.println (" EENHDTMSUP = DISABLED ")'. – Jherico

+0

http://java.sun.com/docs/books/tutorial/essential/regex/ – hakre

Répondre

4

Votre question n'est pas très claire. Avez-vous juste besoin de connaître la valeur de "EENHDMSUP"?

Si oui, quelque chose comme:

int start = myString.indexOf("EENHDTMSUP="); 
String substr = myString.subString(start,myString.indexOf(',',start); 
System.out.println(substr); 

marcherait probablement.

+0

merci cher Tchad :-) – Freeman

+0

Cher Tchad comment puis-je exporter juste valeur par exemple dans ce cas juste: "DISABLED" – Freeman

1

Est-ce que vous cherchez?

StringTokenizer tokenizer = new StringTokenizer(str.substring(4),","); 
while(tokenizer.hasMoreTokens()){ 
    System.out.println(tokenizer.nextToken()); 
} 
+0

Votre première tokenizer.nextToken() affiche ceci: "SET ENCALSUP = NOENCR & GSMV2". Je pense qu'il veut que le "SET" soit supprimé. –

+0

J'avais enlevé le "SET" avec la sous-chaîne sur la chaîne passée au constructeur tokenizer. Cela ne devrait pas être un problème. –

+0

Bien que cela ne ressemble pas à ce que l'affiche demandait. Tant pis. –

0

Je ne sais pas ce que vous entendez par "mais c'est peut-être dynamique". Mais si la chaîne suit toujours ce format et « EENHDTMSUP = disabled » reste à ce même indice dans la chaîne, vous pouvez utiliser:

String output = str.Split(',')[4]; 
0

Pourquoi ne pas essayer?

String[] strings = str.split(","); 

for (String s:strings) { 
    if (s.toLowerCase().startsWith("set ")) { 
     s = s.substring("set ".length()); 
    } 

    System.out.println(s); 
} 

Utilisation d'expressions régulières bien sûr;)

Questions connexes