2017-01-12 2 views
-2

J'utilise StringBuilder dans mon projet. Quand j'apparce char tout est OK, mais quand j'essaye d'ajouter la chaîne "8 (" ou ")" ou "", il reste vide "". Exemple (ÉDITÉ):Java StringBuilder n'ajoute pas de chaînes

int length = number.length(); 
    CharSequence sequence = number.subSequence(0,length); 
    StringBuilder stringBuilder = new StringBuilder(17); 
    for (int i = 0; i < length; i++){ 
     if (Pattern.matches("^[\\d]$", String.valueOf(sequence.charAt(i)))){ 
      stringBuilder.append(sequence.charAt(i)); 
     } 
    } 
    sequence = stringBuilder.toString(); 
    stringBuilder = new StringBuilder(17); 
    CharSequence s = "8 ("; 
    if (sequence.charAt(0) == 8 || sequence.charAt(0) == 7 || sequence.length() == 0){ 
     stringBuilder.append(s); 
    } 
    for (int i = 1; i < 11 && i < sequence.length(); i++){ 
     stringBuilder.append(sequence.charAt(i)); 
     if (i == 3){ 
      stringBuilder.append(") "); 
     } 
     if (i == 6 || i == 8){ 
      stringBuilder.append(' '); 
     } 
    } 
    number.clear(); 
    number.clearSpans(); 
    number.append(stringBuilder.toString()); 
+5

Montrez-nous le code suffisant pour démontrer effectivement la question lorsque courir. – user2357112

+1

Comment dérivez-vous que sb = ""? '.toString()'? –

+0

Impossible de dupliquer –

Répondre

1

Le problème avec votre code est

if (sequence.charAt(0) == 8 || sequence.charAt(0) == 7 || 

vous devez comparer à caractères non ints

if (sequence.charAt(0) == '8' || etc