Java 这是清除StringBuilder的好方法吗?
我只想问一下,这是否是清除/清空StringBuilder的好方法?它被包装在一个方法中,并被多次调用,这个线程安全吗?这不会消耗很多内存吗?如果我在方法外部而在类中创建StringBuilder会更好吗Java 这是清除StringBuilder的好方法吗?,java,android,Java,Android,我只想问一下,这是否是清除/清空StringBuilder的好方法?它被包装在一个方法中,并被多次调用,这个线程安全吗?这不会消耗很多内存吗?如果我在方法外部而在类中创建StringBuilder会更好吗 private void callMe(){ StringBuilder builder = new StringBuilder(); builder.delete(0, builder.length()); } builder.append("some ID"); if
private void callMe(){
StringBuilder builder = new StringBuilder();
builder.delete(0, builder.length());
}
builder.append("some ID");
if (builder.toString().contains("some other ID"))
Show("Information")
else
Show("Invalid ID")
打电话会更有效率 sb.设定长度(0)
因为这只是一个方法调用,而不是两个。调用 sb.设定长度(0)
因为这只是一个方法调用,而不是两个。在我发布我的答案之前,我假设您正在循环中使用StringBuilder,并且每隔几次迭代,您可能希望清空它并从一个空的StringBuilder开始。在这种情况下,我可以想到两种方法:
- 在正在使用的字符串生成器上调用
。我更喜欢这个而不是删除,因为我觉得这更整洁setLength(0)
- 或者分配一个新的,而不是清除缓冲区。这可能不是一个理想的选择,但仍然是一个选择
- 在正在使用的字符串生成器上调用
。我更喜欢这个而不是删除,因为我觉得这更整洁setLength(0)
- 或者分配一个新的,而不是清除缓冲区。这可能不是一个理想的选择,但仍然是一个选择
builder.delete(0,builder.length())代码>?为什么要删除刚刚创建的条目?这只是整个代码的一部分,用于在将字符串与web服务的ID追加后将其与字符串进行比较。我清除了它,因为它被多次调用。整个代码的这一部分不会与代码的其他部分交互。为什么在创建新对象后,要builder.delete(0,builder.length())代码>?为什么要删除刚刚创建的条目?这只是整个代码的一部分,用于在将字符串与web服务的ID追加后将其与字符串进行比较。我清除了它,因为它被多次调用。整个代码的这一部分不会与代码的其他部分交互。