面试题答案
一键面试场景一:SQL语句拼接
在构建动态SQL语句时,经常需要拼接多个条件。使用StringBuilder
的链式调用可以使代码简洁且高效。
String tableName = "users";
StringBuilder sql = new StringBuilder("SELECT * FROM ")
.append(tableName)
.append(" WHERE age > ")
.append(18);
System.out.println(sql.toString());
实现思路:先初始化StringBuilder
并添加固定部分“SELECT * FROM ”,接着通过链式调用append
方法依次添加表名、条件等部分,最后通过toString
方法得到完整的SQL语句。
场景二:日志信息拼接
在记录复杂日志信息时,需要拼接时间、线程名、日志内容等。
long timestamp = System.currentTimeMillis();
String threadName = Thread.currentThread().getName();
String message = "Operation completed successfully";
StringBuilder logMessage = new StringBuilder()
.append("[")
.append(timestamp)
.append("] [")
.append(threadName)
.append("] ")
.append(message);
System.out.println(logMessage.toString());
实现思路:从空的StringBuilder
开始,通过链式调用append
方法逐步添加时间戳、线程名以及日志主体内容,最后转换为字符串输出。
场景三:HTML标签构建
在生成动态HTML内容时,需要拼接各种HTML标签及属性。
StringBuilder html = new StringBuilder("<div id=\"content\">")
.append("<p class=\"text\">Hello, world!</p>")
.append("</div>");
System.out.println(html.toString());
实现思路:以起始的HTML标签作为StringBuilder
的初始内容,通过链式调用append
方法添加内部标签及内容,最后添加结束标签,生成完整的HTML片段。