StringBuffer与stringBuilder
全部标签 我是Java新手,正在学习JavaME开发。我陷入了这种转变。请帮助我将StringBuffer转换为InputStream。谢谢! 最佳答案 查看类(class)ByteArrayInputStream.例如:publicstaticInputStreamfromStringBuffer(StringBufferbuf){returnnewByteArrayInputStream(buf.toString().getBytes());}请注意,您可能希望在getBytes()方法上使用显式字符编码,例如:returnnewByte
假设我们有如下代码:publicstaticvoidmain(String[]args){Strings="";for(inti=0;i(是的,我知道更好的实现方式是使用StringBuilder,但请耐心等待。)通常,我们可能期望生成的字节码类似于以下内容:publicstaticvoidmain(java.lang.String[]);Code:0:ldc#2//String2:astore_13:iconst_04:istore_25:iload_26:sipush100009:if_icmpge2512:aload_113:ldc#3//Stringreally15:invok
我查看了JavaAPI和一些常见的第3方库,但我找不到合适的方法来完成String.replaceAll的功能,StringBuilder除外。我知道通过一些工作,它可以为StringBuffer完成,但我不想走这条路,因为StringBuffer比较慢。有谁知道任何第3方实用程序,或者是否有一段快速代码可以实现此功能? 最佳答案 String.replaceAll只是Matcher.replaceAll的一个便捷方法。Matcher是在Java中使用正则表达式的“实际”方式,并且允许许多更复杂的用例。此外,任何可以在String上
我如何在Java下将字节数组的一部分附加到StringBuilder对象?我有一段从InputStream读取到字节数组的函数。然后我想将我读到的任何内容附加到StringBuilder对象中:byte[]buffer=newbyte[4096];InputStreamis;////somesetupcode//while(is.available()>0){intlen=is.read(buffer);//Iwanttoappendbuffer[0]tobuffer[len]intoStringBuilderatthispoint} 最佳答案
有以下Java代码,用“\n”创建StringBuilder,即回车分隔符:while(scanner.hasNextLine()){sb.append(scanner.nextLine()).append("\n");}发生了,在最后一个字符串(行)之后有“\n”符号。如何从生成的StringBuilder对象中优雅地删除最后一个“\n”?谢谢。 最佳答案 这对我一直有效sb.setLength(sb.length()-1);操作非常轻量级,保持当前内容大小的内部值只会减少1。此外,如果您认为缓冲区可能为空,请在执行此操作之前检查
我想在我的代码中专门检查null或empty。Java中StringBuilder的empty和null是否相同?例如:StringBuilderstate=newStringBuilder();StringBuildererr=newStringBuilder();success=executeCommand(cmd,state,err);/*hereexecuteCommand()returnsemptyornullinstate,IcantmakechangesinexecuteCommand()socanIcheckitinmycodesomehowforstate,ifits
回答思路: 阐述String概念理解 存在问题和设计考量 总结体现的两个特性 StringBuilder/StringBuffer相同点和不同点 三者使用场景总结回答总结: String是Java中非常常见且基础的类,用于字符串的构造和管理,它是Immutable类的经典实现,是finalclass,所有的属性也都是final的所以无法对内部数据进行修改,原生的保证了线程安全;JDK8及其以前,底层数据是用char数组进行存储的,JDK9之后是byte数组存储的; String修改操作不当会产生大量的临时字符串,为了避免这样的问题,Ja
我正在编写一些代码以从Java访问Redis,因此我需要创建大量字符串作为键。当然,这些key有一个模式,我将重复为相同的访问重新生成相同的key。我正在考虑为生成的key实现缓存(基于DAO参数),但即使考虑到缓存的速度,我想知道加速是否值得复杂性。key由一个UUID和一个3-7个字符串组成。在这种情况下,StringBuilder是否足够慢以保证缓存? 最佳答案 只有分析可以肯定地告诉您,但是如果您正在缓存这些,您必须有某种方法从缓存中获取它们,并且这可能至少会产生与仅使用StringBuilder一样多的开销。StringB
我知道.NET中的System.Text.StringBuilder有一个AppendLine()方法,但是,我需要在一个StringBuilder。我知道您可以使用Insert()来附加一个字符串,但我似乎不能用一行来做,是否有我可以使用的下一行字符?我使用的是VB.NET,所以最好用VB.NET回答,但用C#回答也可以。 最佳答案 isthereanextlinecharacterIcanuse?您可以使用Environment.NewLineGetsthenewlinestringdefinedforthisenvironme
在C中,我正在研究一个管理字节缓冲区的“类”,允许将任意数据附加到末尾。我现在正在研究当底层数组填满时使用调用realloc自动调整大小。这对于曾经使用过Java或C#StringBuilder的人来说应该是有意义的。我了解如何调整大小。但是有没有人对每次调整大小时增加多少缓冲区有任何建议,并提供了理由?显然,在浪费的空间和过多的realloc调用(这可能会导致过多的复制)之间需要权衡取舍。我看过一些建议加倍的教程/文章。如果用户设法提供一个好的初始猜测,那似乎很浪费。是否值得尝试四舍五入到平台上对齐大小的两倍或倍数?有谁知道Java或C#在幕后做了什么?