2017-01-12 19 views
-2

我在我的项目中使用了StringBuilder。当我appen char时,一切正常,但当我尝试追加字符串“8(”或“)”或“”时,它保持空白“”。 例(编者):Java StringBuilder不会附加字符串

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

我们展示足够的代码,以实际证明这个问题的时候跑。 – user2357112

+1

你是如何得出那个sb =“”的? '的ToString()'? –

+0

无法复制 –

回答

1

与您的代码的问题是

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

你需要比较字符不是整数

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