我在字符串中缺少逗号时添加了一个逗号,并希望从字符串末尾删除逗号并从末尾的新行中删除额外的空格。
StringBuilder mssg = new StringBuilder();
if (hasError().size <=8){
hasError().keySet().stream().forEach(id ->{
mssg.append(id.toString() + ":");
hasError().get(id).stream.limit(8).forEach(error ->mssg.append(error.toString() + ", "))
mssg.append("\n"); // adding new line for each Id to show it's own error mssg
)}
error output: Missing xnameMissing ynameMissing xyzMissing abcMissing ab, cd or ef,
Id: Id1
所以我的代码 - 我添加了逗号分隔错误输出到字符串,所以 mssg 的输出将是
mssg 输出:Id1:缺少 xname、缺少 yname、缺少 xyz、缺少 abc、缺少 ab、cd 或 ef,
1个项目有多个缺失错误输出
Id1:Missing xname, Missing yname, Missing xyz, Missing abc, Missing ab, cd, or ef,
Id2:Missing yname, Missing ab, cd, or ef,
Id3:Missing xyz,
new line
最佳答案
如果您只想从 StringBuilder
中删除最后 2 个字符:
sb.setLength(sb.length() - 2);
为了满足原始列表可能为空的情况:
sb.setLength(Math.max(0, sb.length() - 2));
但我认为更好的解决方案是一开始就不要将放错位置的分隔符放在那里;例如像这样构建字符串:
stream.limit(8).map(Object::toString).collect(Collectors.joining(", "))
关于java - 如何摆脱 stringBuilder 末尾的尾随逗号和空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59366377/