2011-03-01 3 views
1

Existe-t-il un moyen plus optimal d'obtenir des soustractions séparées par ',' et terminées par '.' que de cette façon?Manière optimale d'obtenir des sous-chaînes?

if (paramsText != null) 
    { 
     while (paramsText.contains(",")) 
     { 
      params.add(paramsText.substring(0, paramsText.indexOf(","))); 
      paramsText = paramsText.substring(
        paramsText.indexOf(",") + 1, paramsText.length()); 
     } 

     params.add(paramsText); 
    } 
+1

vous ne disposez pas d'un '' dans votre code. – aioobe

Répondre

2

Peut-être quelque chose comme ça vous conviendrait:

String str = "There is, a more optimal, way to obtain. subtrings which," 
      + "are separated by, and ended by. than this way."; 

String[] substrings = str.split("\\s*[.,]\\s*"); 
for (String substr : substrings) 
    System.out.println("\"" + substr + "\""); 

sortie: ""

"There is" 
"a more optimal" 
"way to obtain" 
"subtrings which" 
"are separated by" 
"and ended by" 
"than this way" 
+0

Après avoir fait 'String [] sous-chaînes = str.split (" \\ s * [.,] \\ s * "); 'J'ai besoin de' substrings' sous la forme d'une liste , donc je vais devoir parcourir le tableau, le résultat total sera-t-il plus optimal que mon code d'origine? BTW, je pose cette question parce que cette fonction traduira de l'espagnol vers l'anglais ou vice versa le contenu d'une page Web, Merci – camiloqp

+0

Si vous avez besoin d'une interface de liste à un tableau, vous pouvez faire 'Arrays.asList (sous-chaînes)' , mais je ne m'inquiéterais pas trop de la préformance dans ce petit bout de code à moins qu'il ne s'agisse d'un goulot d'étranglement ... Je veux dire, si vous essayez de le faire passer par un traducteur, je parie que le goulot d'étranglement est ailleurs . – aioobe

+0

Merci, cela devrait augmenter les performances au moins un peu;) – camiloqp

3

Puisque vous ne vérifiez pas réellement un "." vous pouvez le faire:

String[] params = paramsText.split(","); 
+0

Fonctionne, mais je dois appeler une fonction plus tard avec des paramètres comme une liste , je vais devoir parcourir le tableau pour obtenir une liste équivalente à droite? – camiloqp

+2

@camiloqp Liste l = Arrays.asList (); – Erik

Questions connexes