2016-09-30 1 views
1

J'ai cette ligneComment ne pas compter les espaces vides dans StringTokenizer

StringTokenizer tk=new StringTokenizer (b=10," =",true); 

ma sortie est

b 
= 
10 

et ce parfait mais encore une fois si ma ligne est ce

StringTokenizer tk=new StringTokenizer (DEFI b=10," =",true); 

Et mon la sortie est

DEFI 

b 
= 
10 

Je ne veux pas inclure ce vide o espace blanc dans la ST, Comment puis-je éviter d'inclure la cause de l'espace blanc que je veux ce genre de sortie

DEFI 
b 
= 
10 

Répondre

1

Si vous le pouvez, je suggère d'utiliser String.split() méthode:

String[] tokens = "DEFI b=10".split("(\\s|(?=\\=)|(?<=\\=))"); 
+0

excellent, Thanx – Baker1562

0

chaîne tokenizer contrusts un tokenizer de chaîne à partir d'une chaîne de caractères spécifiée: (https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html)

 public StringTokenizer(String str, String delim, boolean returnDelims) 

En tant que paramètres, vous avez une déclaration d'objet déclarant une valeur int, un delim qui est un signe égal et un drapeau delim qui est vrai (qui renvoie le caractère delim comme un jeton)

Peut-être devriez-vous refactoriser votre instance de tokenizer String les éléments suivants:

 String b = "DDEFI-b-=-10"; //Create the string to be evaluated 

    String delim = "-"; //Create a delim which serves as a separator 

(Définition de la chaîne comme "DEFI-b - = - 10" - fournira l'espacement correct avec votre delim)

 StringTokenizer tk= new StringTokenizer (b, delim); 

    /* Loop through the elements printing out the specified string */ 

    while(tk.hasMoreElements()) { 
      System.out.println(tk.nextToken()); 
     } 



    //Result 
    DEFI 
    b 
    = 
    10 
+0

, j'ai besoin mis " - "dans chaque chaîne? – Baker1562

+0

Il peut s'agir de n'importe quel caractère .. le delim représente juste le séparateur entre votre chaîne – reh