jjzjj

stringbuilder

全部标签

java - 修改现有字符串的最佳方法? StringBuilder 或转换为 char 数组并返回字符串?

我正在学习Java,想知道在这里修改字符串的最佳方法是什么(既为了提高性能,也为了学习Java中的首选方法)。假设您正在遍历一个字符串并检查每个字符/对该字符串中的该索引执行一些操作。我是使用StringBuilder类,还是将字符串转换为char数组,进行修改,然后将char数组转换回字符串?StringBuilder示例:StringBuildernewString=newStringBuilder(oldString);for(inti=0;i字符数组转换示例:char[]newStringArray=oldString.toCharArray();for(inti=0;i每种不

java - Java 中的 StringBuilder 初始化

我需要使用thismethod,在查看源代码后,我注意到一个我不熟悉的StringBuilder初始化(我总是使用StringBuilder的无参数构造函数,即新的StringBuilder()).在方法中:StringBuildersb=newStringBuilder(items.size()来自JavaDoc:java.lang.StringBuilder.StringBuilder(intcapacity)Constructsastringbuilderwithnocharactersinitandaninitialcapacityspecifiedbythecapacitya

java - 如果使用 + 的字符串连接是使用 StringBuilder 实现的,那么为什么在连接期间会创建额外的对象?

如果如下代码:Strings="a"+1+"b";//1.使用相当于StringBuilder的方式实现Strings=newStringBuilder().append("a").append(1).append("b");那么会在1中创建额外的对象“a”和“b”,为什么? 最佳答案 您的示例实际上不会使用StringBuilder,因为所有元素都不是变量。因为“a”、1和“b”都是文字,所以编译器将为您生成一个String!但是,如果您在该String串联中包含一个变量,那么它将使用StringBuilder并且需要单独的Str

java - 为什么 StringBuilder 是 final - 而不是拥有所有 final 方法?

这样做的动机是我对earlierquestiononStringBuilderbest-practices的回答(“一厢情愿”).如果StringBuilder是可扩展的,那么特定领域的子类可以扩展其流畅的接口(interface),这将加强代码,其中StringBuilder被传递给许多构建更大字符串的部分的方法。我正在考虑向Guava人员提出一些建议-也许是StringBuilder委托(delegate)。与仅具有final方法相反,StringBuilder是final的还有什么其他目的? 最佳答案 如果所有方法都是最终的,

java - 从代码点数字的 IntStream 中创建一个字符串?

如果我正在使用Java流,并以IntStream结尾的codepointUnicode的号码字符,我怎样才能渲染CharSequence例如String?Stringoutput="input_goes_here".codePoints().???;我在几个接口(interface)和类上发现了一个codePoints()方法,它们都生成一个IntStream代码点。然而,我还没有找到接受相同的构造函数或工厂方法。CharSequence::codePoints()→IntStreamString::codePoints()→IntStreamStringBuilder::codePo

java - 如何使用 Stream API 随机播放流?

我决定采用函数式方法生成字符串或随机字符,到目前为止我想到了这个,它应该比装箱然后使用StringJoiner作为收集器执行得更好:Randomrandom=newRandom();StringrandomString=IntStream.concat(random.ints(8,'a','z'),random.ints(8,'A','Z')).collect(StringBuilder::new,(sb,i)->sb.append((char)i),(sb1,sb2)->sb1.append(sb2)).toString();我想生成16个字符的流,范围从a-z或A-Z,我遇到的问题

java - 如何获取 StringBuilder 中的字符数组以避免数组复制

有什么方法可以让我将字符数组存储在StringBuilder中,以避免在执行toString()时创建它的副本。因为,它是一个原始数组,所以它就像深拷贝,我想避免生成这种垃圾。 最佳答案 避免执行stringbuilder.toString().toCharArray(),因为它会分配两次内存。使用类似的东西:char[]charArray=newchar[stringbuilder.length()];stringbuilder.getChars(0,stringbuilder.length(),charArray,0);使用反射

java - Java StringBuilder 可以容纳多少个字符?

StringBuilder在JAVA中对最大容量有字符数限制吗StringBuilderurl=newStringBuilder();stmt=connnection.createStatement();Stringsql="SOMEQUERY";rs=stmt.executeQuery(sql);while(rs.next()){StringemailId=rs.getString("USER_EMAIL_ID");url.append(emailId);}StringBuilder变量'url'是否有最大容量,还是它可以容纳所有内容? 最佳答案

java - 我应该为 Web 应用程序使用 StringBuilder 还是 StringBuffer?

我正在用Java1.6编写一个webapp并在tomcat中运行它。虽然我没有进行任何显式线程处理,但我想知道Spring和Tomcat在幕后发生了什么。使用StringBuilder而不是StringBuffer会遇到任何问题吗? 最佳答案 如果您使用的是局部变量,则可以安全地使用StringBuilder。每个线程都将获得自己的实例。 关于java-我应该为Web应用程序使用StringBuilder还是StringBuffer?,我们在StackOverflow上找到一个类似的问题

java - 有没有办法为 java.lang.StringBuilder 指定字符编码

还是我坚持:Strings=newString(newbyte[0],Charset.forName("ISO-8859-1"));//orISO_8859_1,orLATIN-1or...stillnoconstantsforthosefor(Stringstring:strings){//thoseareISO-8959-1encodeds+=string;//hopefullythispreservestheencoding(?)} 最佳答案 Java中的字符串总是UTF-16编码。它们只是char值的序列,它们是UTF-16