我正在动态创建一个字符串
StringBuilder preparedStatement = new StringBuilder();
states.keySet().forEach(key -> preparedStatement
.append(key)
.append(" = ")
.append(":")
.append(key)
.append(" AND "));
我想在循环结束时删除最后一个AND
。这可能吗?
答案 0 :(得分:0)
是的。您知道" AND "
的宽度,所以只需使用StringBuilder#delete
:
preparedStatement.delete(preparedStatement.length() - " AND ".length(),
preparedStatement.length()
);
或者,如果您要将其变成String
,请使用StringBuilder#substring
:
String result = preparedStatement.substring(0,
preparedStatement.length()
- " AND ".length()
);
答案 1 :(得分:0)
实际上,我认为StringBuilder
在一般情况下不支持删除。它旨在构建字符串。
我建议您不要在构建器中添加“和” :
StringBuilder buf = new StringBuilder();
if(someCheck)
buf.add(" AND ");
这是最佳选择,因为要删除此部分,您必须进行字符串复制。