第十章字符串

字符串是Java程序中经常处理的对象,如果字符串运用得不好,将影响到程序运行的效率。在Java中,字符串作为String类的实例来处理。

单个字符可以用char类型保存,多个字符组成的文本就需要保存在String对象中。String通常被称为字符串,一个String对象最多可以保存(2的32次方-1)个字节(占用4GB空间大小)的文本内容。

package 第十章;

public class Test2 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
//10.3获取字符串信息
		String str="helloworld";
		//获取字符串长度
		int length=str.length();
		System.out.println(length);
		//查找字符串第一次出现该元素的位置
		int indexof=str.indexOf("l");
		System.out.println(indexof);
		//查找字符串最后一次出现该元素的位置
		int lastIndexof=str.lastIndexOf("l");
		System.out.println(lastIndexof);
		//获取指定索引号的字符
		char charAt=str.charAt(3);
		System.out.println(charAt);
	}

}

 String:指定该变量为字符串类型

str:任意有效的标识符,表示字符串变量的名称。

声明字符串变量s  String s;

创建字符串

在Java语言中,将字符串作为对象来处理,因此可以像创建其他类对象一样来创建字符串对象。

创建对象要使用类的构造方法。String类的常用构造方法如下

1 String(char a[])

char a[]={'g','o','o','d'};               

                                                 等价于  String s=new String("good")        

String s=new String(a);

2 String(char a[],int offset,int length)

该方法提取字符数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示截取字符串的长度。代码如下

char a[]={'s','t','u','d','e','n','t'};

                                              等价于 String s=new String("uden");

String s=new String(a,2,4);

3. String(char[]value)

该构造方法可分配一个新的String对象,使其表示字符数组参数中所有元素连接的结果,代码如下

char a[]={'s','t','u','d','e','n','t'};

                                               等价于 String s=new String("student");

String s=new String(a);

除通过以上几种使用String类的构造方法来创建字符串变量外,还可通过将字符串常量的引用赋值给一个字符串变量来创建字符串。代码如下

String str1,str2;

str1="We are students"

str2="We are students"

10.2 连接字符串

连接多个字符串

package 第十章;

public class Join {                                 //创建类

	public static void main(String[] args) {       //主方法
		// TODO 自动生成的方法存根
String s1=new String("春色绿千里");                  //声明String对象s1 
String s2=new String("马蹄香万家");                  //声明String对象s2
String s=s1+"\n"+s2;                               //将对象s1,"\n"和对象s2连接并将结果赋值给s
System.out.println(s);                             //将s输出
	}

}

 连接其他数据类型

package 第十章;

 public class Link {                         //创建类

	public static void main(String[] args) {                  //主方法
		// TODO 自动生成的方法存根
int booktime=4;                                             //声明的int型变量booktime
float practice=2.5f;                                         //声明的float型变量practic
  //将字符串与整形,浮点型变量相连,并将结果输出
System.out.println("我每天花费"+booktime+"小时看书;"+practice+"小时上机练习");
	}

}

 10.3 获取字符串信息

package 第十章;

public class Test2 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
//10.3获取字符串信息
		String str="helloworld";
		//获取字符串长度
		int length=str.length();
		System.out.println(length);
		//查找字符串第一次出现该元素的位置
		int indexof=str.indexOf("l");
		System.out.println(indexof);
		//查找字符串最后一次出现该元素的位置
		int lastIndexof=str.lastIndexOf("l");
		System.out.println(lastIndexof);
		//获取指定索引号的字符
		char charAt=str.charAt(3);
		System.out.println(charAt);
	}

}

获取字符串长度

使用String类的length()方法可获取声明的字符串对象的长度。语法如下

str.length();

其中,str为字符串对象。

获取字符串长度,代码如下

String str="We are students";

int size=str.length();

上段代码是将字符串str的长度赋值给int型变量size,此时变量size的值为15,这表示length()方法返回的字符串的长度(包括字符串中的空格)  

字符串查找

String类提供了俩种查找字符串的方法,即indexOf()与lastIndexOf()方法。这俩种方法都允许在字符串中搜素指定条件的字符或字符串。indexOf()方法返回的是搜索的字符或字符串首次出现的位置,lastIndexOf()方法返回的是搜索的字符或字符串最后一次出现的位置。

1.indexOf(String s)

该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用String类的indexOf()方法时, 会从当前字符串的开始位置搜索s的位置。如果没有检索到字符串s,该方法的返回值是-1.语法如下

str.indexOf(substr)

 str:任意字符串对象

substr:要搜索的字符串

查找字符a在字符串str中的索引位置,代码如下

String str="We are students";

int size=str.indexOf("a");          //变量size的值是3

2. lastIndexOf(String str)

该方法用于返回指定字符串最后一次出现的索引位置。当调用String类的lastIndexOf()方法时,会从当前字符串的开始位置检索参数字符串str,并将最后一次出现str的索引位置返回。如果没有检索到字符串str,该方法返回-1.语法如下

str.lastIndexOf(substr)

 str:任意字符串对象

substr:要搜索的字符串

package 第十章;

public class Test {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String str="We are students";                                       //定义字符串str
int size=str.lastIndexOf("");                                     //将空字符串在str中的索引位置赋值给变量size
System.out.println("空字符串在字符串str中的索引位置是:"+size);        //将变量size输出
System.out.println("字符串str的长度是:"+str.length());             //将字符串str的长度输出
	} 

}

 获取指定索引位置的字符

使用charAt()方法可将指定索引处的字符返回。语法如下

str.charAt(int index)

str:任意字符串

index:整型值,用于指定要返回字符的下标

package 第十章;

public class Ref {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String str="hello world";                                  //定义字符串str
char mychar=str.charAt(6);                                 //将字符串str中索引位置是6的字符返回
System.out.println("字符串str中索引位置是6的字符为:"+mychar);   //输出信息
	}

}

 10.4 字符串操作

String 类中包含了很多方法,允许程序员对字符串进行操作来满足实际编程中的需要

package 第十章;

public class Test3 {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
//10.4字符串
		String str="helloworld";
		//获取子串subString(前索引导)
		String substring1=str.substring(3);
		System.out.println(substring1);
		//获取子串subString(前索引导,后索引导)前含后不含
		String substring2=str.substring(3,5);
		System.out.println(substring2);
		//去除首尾空格
		String st="    Java Class  ";
		System.out.println(st+"的长度"+st.length());
		String trim=st.trim();
		System.out.println(trim+"的长度"+trim.length());
		//字符串的替换
		String s="address";
		String replace=s.replace("a","A");
		System.out.println(replace);
		//判断字符串的开头
		String num1="22045612";
		boolean startsWith=num1.startsWith("22");
		System.out.println(startsWith);
		//判断字符串的结尾
		String num2="21304578";
		boolean endsWith=num2.endsWith("78");
		System.out.println(endsWith);
	}

}

 获取子字符串

通过 String 类的 substring0方法可对字符串进行截取。substring0方法被两种不同的重载形式,来满足不同的需要。这些形式的共同点就是都利用字符串的下标进行截取,且应明确字符串下标是从0开始的。
1.substring(int beginlndex)
该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。语法如下:

str.substring(int beginIndex)
其中,beginIndex 指定从某一索引处开始截取字符串。截取字符串,代码如下
String str = "Hello World";            /定义字符串 str

String substr = str.substring(3);    //获取字符串,此时 substr 值为lo World


2. substring(int beginlndex, int endlndex)
该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串。语法如下:
substring(int beginlndex, int endindex)
 beginIndex:开始截取子字符串的索引位置
 endIndex:子字符串在整个字符串中的结束位置。

package 第十章;

public class Subs {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String str="《将进酒》:李白 (唐)";                        //定义的字符串
String substr=str.substring(6,8);                         //对字符串进行截取
System.out.println("《将进酒》的作者是"+substr);             //输出截取后的的字符串

	}

}

 去除空格

trim()方法返回字符串的副本,忽略前导空格和尾部空格。语法如下

str.trim()

其中,str为任意字符串对象

package 第十章;

public class Blak {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String str="   Jave   class  ";                               //定义字符串str
System.out.println("字符串原来的长度:"+str.length());           //将str原来的长度输出
//将str去掉前导和尾部的空格后的长度输出
System.out.println("去掉空格后的长度:"+str.trim().length());
	}

}

字符串替换

replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。语法如下

str.replace(CharSequence target,CharSequence replacement)

target: 要替换的字符或字符串

replacement:用于替换原来字符串的内容

replace()方法返回的结果是一个新的字符串。如果字符或字符串oldChar没有出现在该对象表达式中的字符串序列中,则将原字符串返回。

package 第十章;

public class NewStr {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String str="address";                        //定义字符串str
String newstr=str.replace("a","A");          //将str中"a"替换成"A"并返回新字符串newstr
System.out.println(newstr);                  //将字符串newstr输出
	}

}

 判断字符串的开始与结尾

startsWith()方法与endsWith()方法分别是用来判断字符串是否只当的内容开始或者结束,这两个方法的返回值都是为布尔类型

startsWith()方法

判断该字符串的前缀是否为参数指定的字符串         语法如下

str。startsWith(String prefix)
其中的,prefix是只作为前缀的字符串

endsWith()方法

判断该字符串的后最是否为参数指定的字符串

str.endsWith(String suffix)

 

package 第十章;

public class StartOrEnd {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String num1="22045612";                     //定义字符串num1
		   boolean startsWith=num1.startsWith("22");//判断字符串的开头
		   System.out.println("字符串num1是以22开始的吗? "+startsWith);//输出信息
		   String num2="21304578";                     //定义字符串num2
		   boolean endsWith=num2.endsWith("78");     //判断字符串的结尾
		   System.out.println("字符串num2是以78结束的吗? "+endsWith);//输出信息
	}

}

判断字符串是否相等

对字符串对象进行比较不能简单的使用比较运算符“==”,因为比较运算符比较的是两个字符串的是否相同,即使两个字符串内容相同,两个对象的内存地址也是不同的,使用比较运算符任然会返回false。使用比较运算符比较两个字符串代码如下,

String a1 =newString("I am a student");
String  c1 =new String ("I am a student");
boolean b (a1 ==c1);
 此时先定义了两个字符串a1,c1 字符串内容相同 此时布尔类型的值为false 此时字符串b是对象 a1,c1是引用

因此就要使用到本小节的两个关键字  equals()方法和equalsIgnoreCase()方法

1.equals()方法

如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较 是,返回true 否则,返回false语法如下

str.equals(String otherstr)
其中str,otherstr是要比较的两个字符串对象

2.equalsIgnoreCase()方法

是哟个equals()方法对字符串进行比较时区分大小写的,而equalsIgnoreCase()方法是在忽略大小所写的情况下比较两个字符串是否相等,返回结果认为boolean型,语法如下

str.equalsIgnoreCase(String otherstr)

 

package 第十章;

public class Opinion {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String s1=new String("abc");             //创建字符串对象s1
		String s2=new String("ABC");             //创建字符串对象s2
		boolean b=s1.equals(s2);                 //使用equala()方法比较s1与s2
		boolean b2=s1.equalsIgnoreCase(s2);//使用equalsIgnoreCase()方法比较s1与s2
		System.out.println(s1+"equals"+s2+":"+b);  //输出信息
		System.out.println(s1+"equalsIgnoreCase"+s2+":"+b);
	}

}

按字典顺序比较两个字符串

compareTo方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的Unicode的值,按字典顺序将String对象比较是字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对位于参数字符串之前则比较结果为一个负数;如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为0,如法如下

str。compareTo(String otherstr)
其中str,otherstr是要比较的两个字符串对象

package 第十章;

public class Wordbook {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
				String str=new String("b");     //用于比较三个字符串
				String str2= new String("a");    //用于比较三个字符串
				String str3= new String("c");   //用于比较三个字符串
				System.out.println(str+"compareTo"+str2+":"
				+str.compareTo(str2));          //将str与str2比较的结果输出
				System.out.println(str+"compareTo"+str3+":"
						+str.compareTo(str3));   //将str与str3比较的结果输出
			}
		 
		}

字母大小转换

String类的toLowerCase()方法可将字符串中的所有大写字母改写成小写字母,而另一种语句toUpperCase()可以将字符串中的所有小写字母改写成大写字母

 1. toLowerCase()方法

该方法将字符串中所有的大写字母转换成小写,如果自负床中没有应该被转换的字符,则将源字符串返回:否则将返回一个新的字符串,将原字符串中每一个小写字母都转换成大写,字符串长度不变 语法如下:

str.toLowerCase();
其中str是要进行转换的字符

2.toUpperCase()该方法将字符串中所有小写的字符转换为大写,如果字符串中没有应该被转化的字符,则将原字符串返回;否则返回一个新字符串,将源字符串中每一个小写字母都转换为大写,字符串长度不变语法如下

str.toUpperCase();
其中str是要进行转换的字符

package 第十章;

public class UpAndLower {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String str=new String("Oh My God");      //创建字符串str
String newstr=str.toLowerCase();         //使用toLowerCase方法实行小写转换
String newstr2=str.toUpperCase();        //使用toUpperCase方法实行大写转换
		System.out.println(newstr);      //将转换后的结果输出
		System.out.println(newstr2);
	}

}

 字符串分割

使用split()方法可以使字符串按指定的分割字符或者字符串进行分割,并将分割后的结果存放在字符串数组中,split()方法提供了以下两种字符串分割形式、

1。split(String sign)

该方法可以根据给定的分隔符来对字符串进行拆分  语法如下

str.split(String sign);
其中,sign为分割字符串的分隔符,也可以使用正则表达式。

2.split(String sign,int limit);

该方法可根据给定的分割符对字符串进行拆分,并且限制拆分的次数  语法瑞小安

str.split(String sign,int limit);
 sign:分割字符串的分隔符,也可以使用正则表达式。

limit:限制的分割次数

 

package 第十章;
public class Division {
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
				String str ="192.168.1.0";//创建一个字符串对象str
				String[]firstArray=str.split("\\.");//将数组中使用\\.进行分割
				String[]secondArray=str.split("\\.",2);//使用\\.分割两次
				System.out.println("str的原值为:["+str+"]");//输出str的原值
				System.out.println("全部分割的效果为:");//输出分割效果依次输出
				for(String a :firstArray){//
					System.out.println("["+a+"]");
				}
				System.out.println();//换行
				System.out.println("分割两次的结果:");//输出分割两次的结果
				for (String a:secondArray) {
					System.out.println("["+a+"]");
				}
				System.out.println();
			}
}
		

10.5 格式化字符串

String类的静态 format0方法用于创建格式化的字符串。format0方法有两种重载形式
1,format(String format,Object...args)
该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默i的语言环境。语法如下:

str.format(String format,Object...args)
format;格式字符串。
Cargs:格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。此参数的数目是可变的,可以为 0。
2.format(Local l,String format,Object...args)
该方法使用指定的语言环境、格式字符串和参数返回一个格式化字符串,格式化后的新字符申使用其指定的语言环境。语法如下:

str.format(Local l,String format,Object...args)
1:格式化过程中要应用的语言环境。如果1为 null,则不进行本地化。
format:格式字符串。
args:格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。此参数的数目是可变的,可以为0

日期和时间字符串格式化

在应用程序设计中,经常需要显示日期和时间。如果想输出满意的日期和时间格式,一般需要编写大量的代码、经过各种算法才能实现。format0方法通过给定的特殊转换符作为参数来实现对日期和时间的格式化。
1、日期格式化
先来看一个例子。返回一个月中的天数,代码如下:

Date date  new Date();//创建Date对象date
String s = String.format("%te", date);//通过 format()方法对 date 进行格式化

上述代码中变量s的值是当前日期中的天数,如今天是15 号,则s的值为15:%te 是转换符。

常用的日期格式化转换符如图10.1所示。

转换符

转换符            说明                                                                  示例
%te                 一个月中的某一天(1~31)                                                 2
%tb                  指定语言环境的月份简称                                   Feb(英文)、二月(中文)
%tB              指定语言环境的月份全称                                            February(英文)、二月 (中文)
%tA                指定语言环境的星期几全称                                         Monday (英文)、星期一 (中文)
%ta              指定语言环境的星期几简称                                               Mon(英文)、星期一(中文)
%tc               包括全部日期和时间信息                                      星期二三月25 13:37:22CST 2008
%tY                    4位年份                                                                          2008
%tj                  一年中的第几天(001~366)                                                  085
%tm                   月份                                                                                     03
%td                    一个月中的第几天 (01~31)                                                  02
%ty                     2 位年份                                                                                 08

 

package 第十章;
import java.util.Date;                   //导入java.util.Date类
public class Eval {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Date date=new Date();                       //创建Date对象date
		String year=String.format("%tY",date);      //将date进行格式化
		String month=String.format("%tB",date); 
		String day=String.format("%td",date);  
		System.out.println("今年是:"+year+"年");        //输出信息
		System.out.println("现在是:"+month);
		System.out.println("今天是:"+day+"号");
	}

}

时间格式化 

 使用 formatO万法不仅可以完成日期的格式化,也可以实现时间的格式化。时间的格式化转换符要比日期的格式化转换符更多、更精确,它可以将时间格式化为时、分、秒、毫秒等。

转换符    说明                                                                   示例
%tH    2位数字的24时制的小时(00~23)                         14
%tI    2位数字的12时制的小时(01~12)                              05
%tk    2位数字的24时制的小时(00~23)                                  5
%tl    2位数字的12时制的小时(1~12)                                   10
%tM    2位数字的分钟数(00~59)                                       05
%tS    2位数字的秒数(00~60)                                           12
%tL    3位数字的毫秒数(000~999)                                       920
%tN    9位数字的微秒数(000000000~999999999)              062000000
%tp    指定语言环境下上午或下午标记                                    下午(中文)、pm(英文)
%tz    相对于GMTRFC82格式的数字时区偏移量                       +0800
%tZ    时区缩写形式的字符串                                                 CST
%ts    1970-01-01 00:00:00至现在经过的秒数                       1206426646
%tQ    1970-01-01 00:00:00至现在经过的毫秒数                           1206426737453

 

package 第十章;
import java.util.Date;                   //导入java.util.Date类
public class GetDate {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
Date date=new Date();                       //创建Date对象date
String hour=String.format("%tH",date);      //将date进行格式化
String minute=String.format("%tM",date);
String second=String.format("%tS",date);
System.out.println("现在是:"+hour+"时"+minute+"分"+second+"秒"); //输出的信息
	}

}

 

package 第十章;
import java.util.Date;                        //导入java.util.Date类
public class DataAndTime {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Date date=new Date();                   //创建Date对象date
		String time=String.format("%tc",date);  //将date格式化
		String form=String.format("%tF",date);
		System.out.println("全部的时间信息是:"+time);  //将格式化后的日期时间输出
		System.out.println("年-月-日格式:"+time);
	}

}

常规类型格式化

常规类型格式化可应用于任何参数类型,可通过如表10.4所示的转换符来实现。

转换符               说明                                                                                    示例
%b、%B    结果被格式化为布尔类型                                         true
%h、%H    结果被格式化为散列码                                                  A05A5198
%s、%S    结果被格式化为字符串类型                                               "abcd"
%c、%C    结果被格式化为字符类型                                                            'a'
%d             结果被格式化为十进制整数                                                                  40
%o               结果被格式化为八进制整数                                                     11
%x、%X    结果被格式化为十六进制整数                                           4b1
%e                  结果被格式化为用计算机科学记数法表示的十进制数    1.700000e+01
%a               结果被格式化为带有效位数和指数的十六进制浮点值    0XL.C000000000001P4
%n                结果为特定于平台的行分隔符    
%%         结果为字面值“%”                                                                        %

 

package 第十章;

public class General {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String str=String.format("%d",400/2);      //将结果以十进制格式显示
String str2=String.format("%b",3>5);       //将结果以Boolean型显示
String str3=String.format("%x",200);       //将结果以十六进制格式显示
System.out.println("400的一半是:"+str);       //输出格式化字符串
System.out.println("3>5正确吗:"+str2);
System.out.println("200的十六进制是:"+str3);
	}

}

使用正则表达式

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,“wd”表示数字09中的任何一个,“d”就是元字符。正则表达式中的元字符及其意义如表 10.5 所示。

元字符    正则表达式中的写法      意义
.    .    任意一个字符
\d    \\d    0~9的任何一个数字
\D    \\D    任何一个非数字字符
\s    \\s    空白字符,如'\t'、'\n'
\S    \\S    非空白字符
\w    \\w    可用于标识符的字符,但不包括“s”
\W    \\W    不可用于标识符的字符
\p{Lower}    \\p{Lower}    小写字母 a~z
\p{Upper}    \\p{Upper}    大写字母 A~Z
\p{AsCll}    \\p{AsCll}    ASCII字符
\p{Alpha}    \\p{Alpha}    字母字符
\p{Digit}    \\p{Digit}    十进制数字,即0~9
\p{Alnum}    \\p{Alnum}    数字或字母字符
\p{Punct}    \\p{Punct}    标点符号:!"#S%&0*+./:>?@[\]^_`{|}~
\p{Graph}    \\p{Graph}    可见字符:[\p{Alnum}\p{Punct}]
\p{print}    \\p{print}    可打印字符[\p{Graph}\x20]
\p{Blank}    \\p{Blank}    空格或制表符:[\t]
\p{Cntrl}    \\p{Cntrl}    控制字符:[\x00-\x1F\x7F]

 

package 第十章;
 	
public class Judge {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String regex="\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}"; //定义要匹配E-mail地址的正则表达式
String str1="aaa@";                                //定义要进行验证的字符串
String str2="aaaaa";
String str3="1111@111ffyu.dfg.com";
if(str1.matches(regex)) {                         //判断字符串变量是否与正则表达式匹配
	System.out.println(str1+"是一个合法的E-mail地址格式");
}
if(str2.matches(regex)) {
	System.out.println(str2+"是一个合法的E-mail地址格式");
}
if(str3.matches(regex)) {
	System.out.println(str3+"是一个合法的E-mail地址格式");
}
	}

}

字符串生成器 

效率比拼

 

package 第十章;

public class Jerque {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
String str="";                            //创建空字符串
long starTime=System.currentTimeMillis();//定义对字符串执行操作的起始时间
for(int i=0;i<10000;i++) {               //利用for循环执行10000次操作
	str=str+i;                            //循环追加字符串
}
long endTime=System.currentTimeMillis();   //定义对字符串操作后的时间
long time=endTime-starTime;                 //计算对字符串执行操作的时间
System.out.println("String消耗时间:"+time);     //将执行的时间输出
StringBuilder builder=new StringBuilder("");   //创建字符串生成器
starTime=System.currentTimeMillis();          //更新操作执行前的时间
for(int j=0;j<10000;j++) {                    //利用for循环进行操作
	builder.append(j);                        //循环追加字符
}
endTime=System.currentTimeMillis();            //更新操作后的时间
time=endTime-starTime;                          //更新追加操作执行的时间
System.out.println("StringBuilder消耗时间:"+time); //将操作时间输出
	}

}

1.append()方法
该方法用于向字符串生成器中追加内容。通过该方法的多个重载形式,可实现接受任何类型的数据,如 int、boolean、char、String、double 或者另一个字符串生成器等。语法如下:

append(content)
其中,content 表示要追加到字符串生成器中的内容,可以是任何类型的数据或者其他对象。

2. insert(int offset, arg)方法
该方法用于向字符串生成器中的指定位置插入数据内容。通过该方法的不同重载形式,可实现向字符串生成器中插入 int、float、char 和 boolean 等基本数据类型的数据或其他对象。语法如下:

insert(int offset arg)
 offset: 字符串生成器的位置。该参数必须大于等于 0,且小于等于此序列的长度。

arg: 将插入至字符串生成器的位置。该参数可以是任何数据类型的数据或其他对象。向字符串生成器中指定的位置添加字符,代码如下:

StringBuilder bf=newStringBuilder("hello");//创建字符生成器
bf.insert(5,"world");//添加至字符生成器的位置及内容
System.out.println(bf.toString());//此时输出信息为 helloworld

3.delete(int start , int end)方法
移除此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end-1处的字如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改。语法如下:

delete(int start , int end)

start: 将要删除的字符串的起点位置。

end: 将要删除的字符串的终点位置。

删除指定位置的子字符串,代码如下:

StringBuilder bf=new StringBuilder("StringBuilder");//创建字符串生成器
bf.delete(5,10);//删除的子字符串
System.out.println(bf.toString());//此时输出的信息为Strinder
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值