给定以下代码:`StringBuilder sb = new StringBuilder("start"); sb.append("mid").insert(sb.length(), "end"); sb.delete(0, 5); String result = sb.toString();`,`result`变量的值最终会是什么?
答案解析
`StringBuilder` 是可变的。初始 `sb` 为 "start"。`sb.append("mid")` 后,`sb` 变为 "startmid"。 `sb.insert(sb.length(), "end")` 将 "end" 插入到 `sb` 末尾,`sb` 变为 "startmidend"。`sb.delete(0, 5)` 删除索引 0 到 4 的字符(不包括索引 5),所以`sb`变为 "midend"。最后 `sb.toString()` 将 `StringBuilder` 对象转换为 `String` 对象并赋值给 `result`。选项B错误,插入操作不会导致字符串翻转。选项C错误,删除操作会将 "start" 部分删除。选项D错误,删除操作后结果为"midend",而非"dmidend"。
正确答案:A