java - 可附加容量限制
问题描述
我想要一个实现 Appendable 的类,写入内存中的字符串(即 StringBuilder 或 StringWriter),但对最大容量施加硬性限制。
我没有在 Java 标准库中找到类似的东西,也没有在任何“公共”库中找到类似的东西,例如 Guava 或 Apache Commons。
我特别需要 Appendable 接口实现,因为这是我使用的第 3 方库的要求。
解决方案
将内部收集的字符串委托给 StringBuilder 字段。
public class A implements Appendable {
private final StringBuilder sb;
private final int max;
public A(int max) {
this.max = max;
sb = new StringBuilder(max);
}
@Override
public A append(char c) {
if (sb.length() < max) {
sb.append(c);
}
return this;
}
@Override
public A append(CharSequence csq) {
return append(csq, 0, csq.length());
}
@Override
public A append(CharSequence csq, int start, int end) {
...
}
@Override
public String toString() {
return sb.toString();
}
}
也许您被 StringBuilder 作为最终类、不可扩展的阻碍。
推荐阅读
- r - 如何用非空数据框中的列填充空数据框?
- android - 将数据传递给 PageKeyedDataSource
- java - 如何有效地索引 n 个线程之间的非平方乘积矩阵?
- python - 规范化嵌套的 JSON 数据
- function - 更改函数中的全局切片
- python - 密码验证器:密码需要包含一个空格字符?
- .net - 我收到此错误:未知错误(0x80005000)
- javascript - Javascript正则表达式引擎:非单词字符的字符串开头的单词边界不匹配
- regex - 如何在scala中为like运算符添加switch case?
- wix - 在 Visual Studio 2013 中创建 MSI