我正在使用StringBuffer,这是一个在hibernate应用程序中构建的前一个开发人员,并在一些.append()
方法中找到了一些有趣的东西
sb.append("<td style=\"padding-left:5px\">~BFE~").append(MyField).append("~AFT~</td>");
这似乎只会添加到包含任何给定表的主键的每个<td>
这可能是一件简单的事情,因为没有写任何评论,我很想念它,但这里究竟发生了什么?我假设一些事情&amp;在那之后与HTML有关。
答案 0 :(得分:3)
嗯,对于您发布的代码:
sb.append("<td style=\"padding-left:5px\">~BFE~").append(MyField).append("~AFT~</td>");
如果&#39; MyField&#39;属性是&#39; 1234&#39;然后将打印出以下html:
<td style="padding-left:5px">~BFE~1234~AFT~</td>
就是这样。
为什么之前的开发人员使用BFE或AFT(除了之前/之后,请参阅Logan Murphy的评论),谁知道。也许有一些东西正在解析html表并寻找BFE / AFT来查找MyValue值?
旁注:
整个StringBuffer与StringBuilder的讨论只是一点噪音。到目前为止,StringBuilder是构建字符串的首选方法(参见Peter Lawrey关于StringBuffer和StringBuilder的评论)。但即便如此,在这个场景背后,Java会将串行串联连接调用流化为使用StringBuilder。
...含义
String html = "<td style=\"padding-left:5px\">~BFE~") + MyField +"~AFT~</td>"
与......相同。
StringBuilder sb = new StringBuilder();
sb.append("<td style=\"padding-left:5px\">~BFE~").append(MyField).append("~AFT~</td>");
String html = sb.toString();