草庐IT

StringBuilder类

全部标签

java - 将 Java StringBuilder 转储到文件

将StringBuilder转储到文本文件的最有效/优雅的方法是什么?你可以这样做:outputStream.write(stringBuilder.toString().getBytes());但这对于非常长的文件是否有效?有没有更好的办法? 最佳答案 正如其他人指出的那样,使用Writer,并使用BufferedWriter,但不要调用writer.write(stringBuilder.toString());而只是writer.append(stringBuilder);.编辑:但是,我看到您接受了不同的答案,因为它是单行的

java - 将 Java StringBuilder 转储到文件

将StringBuilder转储到文本文件的最有效/优雅的方法是什么?你可以这样做:outputStream.write(stringBuilder.toString().getBytes());但这对于非常长的文件是否有效?有没有更好的办法? 最佳答案 正如其他人指出的那样,使用Writer,并使用BufferedWriter,但不要调用writer.write(stringBuilder.toString());而只是writer.append(stringBuilder);.编辑:但是,我看到您接受了不同的答案,因为它是单行的

java - 为什么 StringBuilder 链接模式 sb.append(x).append(y) 比常规 sb.append(x) 快; sb.append(y)?

我有一个显示非常奇怪结果的微基准:@BenchmarkMode(Mode.Throughput)@Fork(1)@State(Scope.Thread)@Warmup(iterations=10,time=1,timeUnit=TimeUnit.SECONDS,batchSize=1000)@Measurement(iterations=40,time=1,timeUnit=TimeUnit.SECONDS,batchSize=1000)publicclassChaining{privateStringa1="111111111111111111111111";privateStrin

java - 为什么 StringBuilder 链接模式 sb.append(x).append(y) 比常规 sb.append(x) 快; sb.append(y)?

我有一个显示非常奇怪结果的微基准:@BenchmarkMode(Mode.Throughput)@Fork(1)@State(Scope.Thread)@Warmup(iterations=10,time=1,timeUnit=TimeUnit.SECONDS,batchSize=1000)@Measurement(iterations=40,time=1,timeUnit=TimeUnit.SECONDS,batchSize=1000)publicclassChaining{privateStringa1="111111111111111111111111";privateStrin

java - 既然我们已经有了 StringBuilder,为什么还要使用 StringJoiner?

我最近遇到了一个Java8类StringJoiner它使用分隔符添加字符串并为其添加前缀和后缀,但我无法理解此类的需要,因为它也使用StringBuilder在后端,还执行非常简单的附加字符串操作。我是不是因为没有真正理解这门课的真正目的而错过了什么? 最佳答案 当您需要在Stream中加入字符串时,StringJoiner非常有用。例如,如果您必须遵循字符串列表:finalListstrings=Arrays.asList("Foo","Bar","Baz");使用起来更简单finalStringcollectJoin=strin

java - 既然我们已经有了 StringBuilder,为什么还要使用 StringJoiner?

我最近遇到了一个Java8类StringJoiner它使用分隔符添加字符串并为其添加前缀和后缀,但我无法理解此类的需要,因为它也使用StringBuilder在后端,还执行非常简单的附加字符串操作。我是不是因为没有真正理解这门课的真正目的而错过了什么? 最佳答案 当您需要在Stream中加入字符串时,StringJoiner非常有用。例如,如果您必须遵循字符串列表:finalListstrings=Arrays.asList("Foo","Bar","Baz");使用起来更简单finalStringcollectJoin=strin

java - StringBuilder 与 StringWriter 和 PrintWriter 的字符串组装

我最近遇到了一个从未见过的习语:StringWriter和PrintWriter的字符串组装。我的意思是,我知道如何使用它们,但我一直使用StringBuilder。是否有一个具体的理由偏爱一个而不是另一个?StringBuilder方法对我来说似乎更自然,但它只是样式吗?我在这里查看了几个问题(包括最接近的一个:StringWriterorStringBuilder),但没有一个问题的答案真正解决了是否有理由更喜欢一个而不是另一个来进行简单的字符串组装的问题。这是我多次看到并使用过的成语:StringBuilder的字符串组装:publicstaticStringnewline=Sy

java - StringBuilder 与 StringWriter 和 PrintWriter 的字符串组装

我最近遇到了一个从未见过的习语:StringWriter和PrintWriter的字符串组装。我的意思是,我知道如何使用它们,但我一直使用StringBuilder。是否有一个具体的理由偏爱一个而不是另一个?StringBuilder方法对我来说似乎更自然,但它只是样式吗?我在这里查看了几个问题(包括最接近的一个:StringWriterorStringBuilder),但没有一个问题的答案真正解决了是否有理由更喜欢一个而不是另一个来进行简单的字符串组装的问题。这是我多次看到并使用过的成语:StringBuilder的字符串组装:publicstaticStringnewline=Sy

c# - 字符串与 StringBuilder

我理解String和StringBuilder之间的区别(StringBuilder是可变的)但是两者之间有很大的性能差异吗?我正在处理的程序有很多大小写驱动的字符串追加(500+)。使用StringBuilder是更好的选择吗? 最佳答案 是的,性能差异很大。请参阅知识库文章“HowtoimprovestringconcatenationperformanceinVisualC#”。我总是尝试先编写代码以确保清晰度,然后再针对性能进行优化。这比反过来做要容易得多!但是,在看到我的应用程序在两者之间存在巨大的性能差异后,我现在更仔细

java - StringBuilder - 重置或创建一个新的

我有一个条件,即StringBuilder不断存储与大型平面文件(100MB)中的模式匹配的行。但是,在达到条件后,我将StringBuilder变量的内容写入文本文件。现在我想知道我是否应该通过重置对象来使用相同的变量->stringBuilder.delete(0,stringBuilder.length())或stringBuilder=newStringBuilder();请就性能和OOM问题提出您认为哪个更好。 最佳答案 我认为StringBuilder#delete(start,end)仍然是昂贵的调用,你应该这样做:s