本文主要介绍了stringBuilder在java中的用法,并且通过示例代码非常详细,对于大家的学习或者工作都有一定的参考价值。有需要的朋友下面和边肖一起学习。
对象字符串是不可变的。每次你使用系统中的一个方法。String类,你必须在内存中创建一个新的string对象,所以你需要为这个新对象分配新的空间。在重复修改字符串的情况下,与创建新的字符串对象相关联的开销可能非常昂贵。如果要修改字符串而不创建新对象,可以使用系统。StringBuilder类。例如,当许多字符串在一个循环中连接在一起时,使用StringBuilder类可以提高性能。
通过用重载的构造函数方法初始化变量,可以创建StringBuilder类的新实例,如下例所示。
StringBuilder MyStringBuilder=new StringBuilder(' Hello World!');
(一)设置容量和长度
虽然StringBuilder对象是一个动态对象,但它允许扩展它封装的字符串中的字符数,但是您可以指定它可以容纳的最大字符数的值。这个值称为这个对象的容量,不应该与当前StringBuilder对象保存的字符串长度相混淆。例如,可以用字符串“Hello”(长度为5)创建StringBuilder类的新实例,并指定该对象的最大容量为25。当修改StringBuilder时,它不会为自己重新分配空间,直到达到它的容量。当达到容量时,将自动分配新空间,容量将翻倍。您可以使用一个重载的构造函数来指定StringBuilder类的容量。下面的代码示例指定MyStringBuilder对象最多可以扩展到25个空格。
StringBuilderMyStringBuilder=new StringBuilder(' Hello World!', 25);
此外,您可以使用读/写容量属性来设置对象的最大长度。下面的代码示例使用Capacity属性定义对象的最大长度。
MyStringBuilder。容量=25;
(二)下面列出了此类的几个常用方法:
(1)Append方法可用于将字符串表示的文本或对象添加到当前StringBuilder对象所表示的字符串的末尾。下面的示例将StringBuilder对象初始化为“Hello World ”,然后将一些文本追加到该对象的末尾。空间将根据需要自动分配。
StringBuilderMyStringBuilder=new StringBuilder(' Hello World!');
MyStringBuilder。追加('多么美好的一天。');
控制台。WriteLine(mystring builder);
这个例子改变了Hello World!多么美好的一天。显示到控制台。
(2)AppendFormat方法将文本添加到StringBuilder的末尾,并实现IFormattable接口,因此它可以接受formatting部分描述的标准格式字符串。您可以使用这个方法自定义变量的格式,并将这些值附加到StringBuilder的后面。下面的示例使用AppendFormat方法将格式化为货币值的整数值放在StringBuilder的末尾。
int MyInt=25
StringBuilder mystring builder=new StringBuilder('你的总数是');
MyStringBuilder。append format(“{ 0:C }”,MyInt);
控制台。WriteLine(mystring builder);
此示例向控制台显示您的总额为$25.00。
(3)3)Insert方法将一个字符串或对象添加到当前StringBuilder中的指定位置。下面的示例使用此方法将一个单词插入到StringBuilder的第六个位置。
StringBuilderMyStringBuilder=new StringBuilder(' Hello World!');
MyStringBuilder。插入(6,'漂亮');
控制台。WriteLine(mystring builder);
此示例更改Hello BeautifulWorld!显示到控制台。
(4)可以使用delete方法从当前StringBuilder中删除指定数量的字符。移除过程从指定的从零开始的索引开始。下面的示例使用Remove方法来缩短StringBuilder。
StringBuilderMyStringBuilder=new StringBuilder(' helloooo ');
MyStringBuilder.delete(5,7);
控制台。WriteLine(mystring builder);
此示例向控制台显示helloo。
(5)使用Replace方法,可以用另一个指定的字符替换StringBuilder对象中的字符。以下示例使用Replace方法来搜索
StringBuilder对象查找所有感叹号字符(!),并使用问号字符(?)来代替它们。
StringBuilderMyStringBuilder=new StringBuilder(' Hello World!');
MyStringBuilder。替换('!', '?');
控制台。WriteLine(mystring builder);
这个例子改变了Hello World?显示到控制台
getSqlMapClientTemplate()。queryForList((new StringBuilder())。append(entityClass.getName())。追加('。选择’)。toString(),null);
Java的StringBuilder类
如果程序经常需要额外的字符串,不建议连接字符串。考虑使用java.lang.StringBuilder类。默认情况下,该类生成的对象的长度为16个字符,或者您可以自己指定初始长度。如果附加的字符超过了可以容纳的长度,StringBuilder对象将自动增加长度以容纳附加的字符。如果需要频繁附加字符串,使用StringBuilder类可以大大提高效率。代码如下:Java代码
公共类AppendStringTest
{
公共静态void main(String[] args)
{
string text=“”;
long begin time=system . current time millis();
for(int I=0;我10000;我)
text=text I;
long end time=system . current time millis();
System.out.println('执行时间:'(end time-begin time));
StringBuilder sb=new StringBuilder(');
begin time=system . current time millis();
for(int I=0;我10000;我)
sb . append(string . value of(I));
end time=system . current time millis();
System.out.println('执行时间:'(end time-begin time));
}
}
公共类AppendStringTest
{
公共静态void main(String[] args)
{
string text=“”;
long begin time=system . current time millis();
for(int I=0;i10000我)
text=text I;
long end time=system . current time millis();
System.out.println('执行时间:'(end time-begin time));
StringBuilder SB=New StringBuilder(' China ');
begin time=system . current time millis();
for(int I=0;i1;我)
Sb.append('台湾省');
end time=system . current time millis();
System.out.println('执行时间:'(end time-begin time));
}
}
此代码的输出:中国“台湾省”
执行时间:3188
执行时间:15
StringBuilder是j2se1.5.0中新增的一个类,如果之前的版本有相同的要求,那么使用java.util.StringBuffer。实际上,StringBuilder的设计与StringBuffer具有相同的操作接口。单机不是多线程的情况下使用StringBuilder会更有效率,因为StringBuilder不处理同步问题。StringBuffer将处理同步问题。如果StringBuilder将在多线程下运行,将改为使用StringBuffer,对象将自行管理同步问题。
关于java stringBuilder的详细用法的这篇文章就到这里了。有关java stringBuilder的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。