[英]Does the compiler optimize Stringbuffer/StringBuilder.append() for constant strings?
[英]Java StringBuilder does not append strings
我在我的項目中使用 StringBuilder。 當我附加字符時一切正常,但是當我嘗試附加字符串“8(”或“)”或“”時,它保持空“”。 示例(已編輯):
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());
你的代碼的問題是
if (sequence.charAt(0) == 8 || sequence.charAt(0) == 7 ||
你需要比較字符而不是整數
if (sequence.charAt(0) == '8' || etc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.