栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中object类的子类String-StringBuilde-StringBuffer

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中object类的子类String-StringBuilde-StringBuffer

1.String类如何创建对象,有哪些常用方法?

    String类---不可变的字符串操作类

    String类---java的jdk提=提供好的开发类。【java.lang包不用import】

    String类是使用final修饰符修饰的,说明它咩有子类,不可被继承。

    String类创建对象---构造方法

1.String()—创建一个空字符串对象

2.String(byte[] bytes,int offset,int length)—字节数组转换成字符串

3.String(char[] value,int offset,int count)—字符数组转换正字符串

4.String(String original)—字符串常量创建字符串对象

package Test1;
 
public class StringTest {
 
	public static void main(String[] args) {
		//String() --- 创建一个空字符串对象
		String str=new String();
		//String(byte[] bytes,into offset,int length)---字节数组转换成字符串
		//byte[] bytes---字节数组
		//int offset---数组的其实位置
		//int length---被转换的字节个数
		byte bytearr[]={97,98,99,100};
		String str2= new String(bytearr,0,bytearr.length);
		System.out.println("str2==="+str2);
		//String(char[] value,int offset,int count)---字符数组转换成字符串
		//char[] vlaue---字符数组
		//int offset---数组的其实位置
		//int count---被转换的字符个数
		char value[]={'h','e','l','l','o'};
		String str3=new String(value,0,value.length);
		System.out.println("str3==="+str3);
		//String(String original)---字符串常量创建字符串对象
		String str4=new String("hello,world");
		//上面的写法可以简化
		String str5="hello,world";
	}
 
}

2.String的常用方法:

    1.char  charAt(int index)从原始字符串中得到指定位置的字符元素。

    2.String concat(String str)将指定的字符串连接到该字符串的末尾

    3.boolean contains(CharSequence s) 判断指定的字符串数据是否在原始字符串中存在

    4.boolean endsWitch(String suffix)测试此字符串是否以指定的后缀结尾。

    5.boolean startsWith(String prefix)测试此字符串是否以指定的前缀开头。

    6.byte[] getBytes() 将字符串通过默认的字符编码转换成字节数组

    byte[] getBytes(String charsetName)将字符串通过指定的字符编码转换成字节数组 

    7.int indexOf(String str) 返回指定子字符串第一次出现在字符串内的索引位置

    8.lastIndexOf(String str)返回指定子字符串最后一次出现的字符串中的索引。

    9.boolean isEmpty()判断字符串是否为空串,此方法为true时,字符串长度一定为0

    10.int length()返回此字符串的长度。

    11.boolan matches(String regex)判断字符串数据是否符合正则表达式

    12.String replace(CharSequence old,CharSequence new)江子面目标序列匹配的字符串的每个字符串替换为指定的字面替换序列

    13.String[] split(String regex)通过指定的符号将字符串拆分成一个字符串数组

    14.String substring(int beginIndex)截取从指定的开始位置到字符串结尾的一个子字符串

    String substring(int beginIndex,int endIndex)截取从指定的开始位置到指定的结束位置的一个子字符串

    15.char[] toCharArray()将此字符串转换为新的字符数组

    16.String toLowerCase()大写转小写

    17.toUpperCase()小写转大写

    18.String trim()去除原始字符串的两头空格

例如:

package Test1;
 
public class StringTest2 {
 
	public static void main(String[] args) throws Exception{
		//创建字符串对象
		String str1=new String("hello,world");
		//1.char  cahrAt(int index)从原始字符传中得到指定位置的字符元素。
		//System.out.println(str1.charAt(0));//得到h
		//2.String concat(String str)将指定的字符串连接到该字符串的末尾
		//String newstr=str1.concat("你好");
		//String newstr=str1+"你好";
		//System.out.println(str1.concat("你好"));//hello,world你好
		//3.boolean contains(CharSequence s) 判断指定的字符串数据是否在原始字符串中存在
		//System.out.println(str1.contains("hello"));//true
		//保存姓名的数组
		//String names[]={"张三","李四","王五","赵六"};	
		//4.boolean endsWitch(String suffix)测试此字符串是否以指定的后缀结尾。
		
		//String(byte[] bytes,int offset,int length)---字符数组转换成字符串
		
		//7.int indexOf(String str) 返回指定字符字符串第一次出现在字符串内的索引位置
		//System.out.println(str1.indexOf("llo"));//2
		//8.lastIndexOf(String lastIndexOf)返回指定字符串最后一次出现的字符串中的索引。
		//System.out.println(str1.lastIndexOf("abc"));//-1
		//9.boolean isEmpty()判断字符串是否为空串,此方法为true时,字符串长度一定为0
		//System.out.println(str1.isEmpty());//false
		//10.int length()返回此字符串的长度。
		//System.out.println(str1.length());//11
		//11.String replace(CharSequence old, CharSequence new)将与字面目标序列匹配的字符串的每个字符串替换为指定的字面替换序列
		//System.out.println(str1.replace("hello", "你好"));//你好,world
		//12.String[] split(String regex)通过指定的符号将字符串拆分成一个字符串数组
		//String strarr[]=str1.split(",");
		//System.out.println(strarr[0]);
		//System.out.println(strarr[1]);
		//14String substring(int beginIndex)截取从指定的开始位置到字符串结尾的一个子字符串
		//System.out.println(str1.substring(str1.indexOf(",")+1));
		//String substring(int beginIndex,int endIndex)截取从指定的开始位置到指定的结束结束位置的一个子
		//System.out.println(str1.substring(0, str1.indexOf(",")));
		
		
		//String(char[] value,int offset,int count)--字符数组转换成字符串
		//15.char[] toCharArray()将此字符串转换为新的字符数组
		
		//16.String toLowerCase()大写转小写
		System.out.println(str1.toLowerCase());
		//17.toUpperCase()小写转大写
		System.out.println(str1.toUpperCase());
		//18.String trim()去除原始字符串的两头空格
	}
 
}

3.字符串与基本类型的转换

    1.String转换成基本类型

    通过基本类型提供的封装类的parseXXX(String str) / int parseInt(String str)/double parseDoule(String str) / boolean  parseBoolean(String str)

    上面的这一组parseXXX(String str)方法只能被基本类型的封装类调用。

    只有基本数据类型才有自己对应的封装类。

    封装类---基本数据类型对应的复合数据类型

例如:

package Test1;
 
public class Test {
 
	public static void main(String[] args) {
	Double dou=12.5;//double类型的变量,没有可供使用的方法
		Double dou02=new Double(12.5);//Double的对象,有可供使用的变量和方法。
	}
 
}

自动装箱—将基本数据类型转换成对应的封装类类型

1.封装类的构造方法

2.将基本数据类型变量/数据值直接赋值给对应的封装类变量

自动拆箱—将封装类类型转成基本数据类型【直接赋值】

例如:

package Test1;
 
public class Test {
 
	public static void main(String[] args) {
		//String 转化成基本类型---parseXXX(String str)---基本数据类型的封装类
		//封装类---基本数据类型对应的复合数据类型
		//基本数据类型没有可供使用的方法
		//封装类有可供使用的变量和方法
		//自动装箱---将基本数据类型转换成对应的封装类类型
		//1.封装类的构造方法
		Integer int1=new Integer(100);
		int a=100;
		Integer int2=new Integer(a);
		//2.将基本数据类型变量/数据值直接赋值给对应的封装类变量
		Integer int11=100;
		int a22=100;
		Integer int22=a22;
		//自动拆箱--将封装类类型转换成基本数据类型【直接赋值】
		Double dou1=new Double(12.5);
		double dou2=dou1;
		
		//我们可以通过基本数据类型的封装类的静态方法parseXXX(String str)将字符串转换成基本类型
		String str1="12.5";
		double dou3=Double.parseDouble(str1);
		System.out.println(dou3+1);//13.5
				
		String boo1="true";
		boolean boo2=Boolean.parseBoolean(boo1);
		if(boo2){
			System.out.println("基本类型");
		}else{
			System.out.println("字符串类型");
		}
 
	}
 
}

2.基本类型转换成String

将基本类型转换成String【static String valueOf(基本数据类型的数据值/变量)】

例如:

package Test1;
 
public class Test {
 
	public static void main(String[] args) {
		//将基本数据乐行转换成String【static String vlaueOf(基本数据类型的数据值/变量)】
		int num1=100;
		String str01=String.valueOf(num1);
		System.out.println(str01.length());
		
		double dou01=12.5;
		String str02=String.valueOf(dou01);
		
	}
 
}

4.String类与字节数组或者字符数组之间的相互转换

String类与自己数组

1.String类转换成字节数组—String类的"byte[] getBytes()"/“byte[] getBytes(String charSetName)”

2.字节数组转换String类型—String类的构造方法String(byte[] bytes,int offset,int length)

String类与字符数组

1.String类转换成字符数组—String类的"char[] toCharArray()"

2.字符数组转换String类型—String类的构造方法"String(char[] value,int offset,int count)"

5.字符串操作类StringBuilder、StringBuffer

StringBuilder—一个可变的字符序列

StringBuilder()构造一个初始容量为16个字符的空StringBuilder对象

StringBuilder(CharSequence seq)通过其他的StringBuilder对象创建一个新的StringBuileder对象

StringBuilder(int capacity)构造一个有capacity参数指定的初始容量得空的StringBuilder对象

StringBuilder(String str)构造一个初始化为指定字符串内容的StringBuilder对象。

例如:

package Test2;
 
public class StringBuilderTest1 {
 
	public static void main(String[] args) {
		//StringBuilder()构造一个初始容量为16个字符的空StringBuilder对象。
		StringBuilder sbu=new StringBuilder();
		//StringBuilder(CharSequence seq)通过其他的StringBuilder对象创建一个新的StringBuilder对象
		StringBuilder sbu2=new StringBuilder("hello,world");
		//StringBuilder(int capacity)构造一个由 capacity参数指定的初始容量的空StringBuilder对象
		StringBuilder sbu3=new StringBuilder(23);
		//StringBuilder(String str)构造一个初始化为指定字符串内容StringBuilder对象。
		String str="hello,world";
		StringBuilder sbu4=new StringBuilder(str);
	}
 
}

int capacity()返回当前容量。

char charAt(int index)返回char在指定索引在这个字符值

int indexOf(String str)返回指定字符串第一次出现的字符串内的索引

int lastIndexOf(String str)返回指定子字符串最右边出现的字符串内的索引。

int lenght()返回长度(字符数)

StringBuilder append(Object o)将参数的字符串表示追加到序列中

StringBuilder delete(int start,int end)删除此序列的子字符串中的字符。

StringBuilder deleteCharAt(int index)删除char在这个序列中的指定位置

StringBuilder insert(int offset,Object o)将参数的字符串表示插入到此序列中指定的位置。

StringBuilder reverse()倒置该字符序列被序列的相反代替。

StringBuilder replace(int start,int end,String str)用指定的String中的字符替换此序列的子字符串中String。

String substring(int start)返回一个新的String,其中包含此字符序列中当前包的字符序列

String substring(int statr,int end)返回一个新的String,其中包含此序列中当前包含的字符的子序列。

String tostring()返回表示此顺序中的数据字符串。

例如:

package Test2;
 
public class StringBuilderTest1 {
 
	public static void main(String[] args) {
		//StringBuilder()构造一个初始容量为16个字符的空StringBuilder对象。
		StringBuilder sbu=new StringBuilder();
		//StringBuilder(CharSequence seq)通过其他的StringBuilder对象创建一个新的StringBuilder对象
		StringBuilder sbu2=new StringBuilder("hello,world");
		//StringBuilder(int capacity)构造一个由 capacity参数指定的初始容量的空StringBuilder对象
		StringBuilder sbu3=new StringBuilder(23);
		//StringBuilder(String str)构造一个初始化为指定字符串内容StringBuilder对象。
		String str="hello,world";
		StringBuilder sbu4=new StringBuilder(str);
		
		System.out.println(sbu2.capacity());
		System.out.println(sbu2.charAt(5));
		System.out.println(sbu2.lastIndexOf("l"));
		System.out.println(sbu2.length());
		
		//StringBuilder   append(Object)将参数的字符串表示追加到序列中
		System.out.println(sbu.capacity());
		sbu.append("12345678901234567");
		System.out.println(sbu.capacity());
		//delete(int start,int end)删除此序列的子字符串中的字符。
		System.out.println(sbu2.delete(0, 2));
		//deleteCharAt(int index)//传出char在这个序列中的指定位置
		System.out.println(sbu2.deleteCharAt(2));
		//insert(int offset,Object o)将参数的字符串表示插入到此序列中的指定位置。
		System.out.println(sbu2.insert(0, "he"));
		System.out.println(sbu2.insert(4, "o"));
		//reverse()倒置该字符序列被序列的相反代替
		System.out.println(sbu2.reverse());
		System.out.println(sbu2.reverse());
		//replace(int start,int end,String str)用指定的String中的字符替换此序列的字符串中的String。
		System.out.println(sbu2.replace(0, 5, "你好"));//0-5之间不包括5
		//substring(int start)返回一个新的String,其中包含此字符序列中的当前包含的字符子序列
		System.out.println(sbu2.substring(1));
		//substring(int start,int end)返回一个新的String,其中包含此序列中当前包含的字符的子序列
		System.out.println(sbu2.subSequence(0, 5));//0-5之间不包括5
		//toString()返回表示此顺序中的 数据的字符串
		System.out.println(sbu2.toString());
	}
 
}

StringBuilder与String得转换

StringBuilder—>String StringBuilder的toString();

String的构造方法String(StringBuilder builder);

String—>StringBuilder StringBuilder的构造方法

String str11=sbu2.toString();
 
		StringBuilder builder=new StringBuilder("abcd");
		String str33=new String(buffer);        
 
		StringBuilder sbu6=new StringBuilder(str11);

StringBuffer类与StringBuilder类相似

StringBuffer—一个可变的字符序列

StringBuffer()构造一个初始容量为16个字符的空StringBuffer对象

StringBuffer(CharSequence seq)通过其他的StringBuffer对象创建一个新的StringBuffer对象

StringBuffer(int capacity)构造一个有capacity参数指定的初始容量得空的StringBuffer对象

StringBuffer(String str)构造一个初始化为指定字符串内容的StringBuffer对象。

例如:

package Test2;
 
public class StringBufferTest {
 
	public static void main(String[] args) {
		//StringBuffer()构造一个初始容量为16个字符的空StringBuffer对象。
		StringBuffer sbu=new StringBuffer();
		//StringBuffer(CharSequence seq)通过其他的StringBuffer对象创建一个新的StringBuffer对象
		StringBuffer sbu2=new StringBuffer("hello,world");
		//StringBuffer(int capacity)构造一个由 capacity参数指定的初始容量的空StringBuffer对象
		StringBuffer sbu3=new StringBuffer(23);
		//StringBuffer(String str)构造一个初始化为指定字符串内容StringBuffer对象。
		String str="hello,world";
		StringBuffer sbu4=new StringBuffer(str);
		
		
	}
 
}

StringBuffer类的方法

int capacity()返回当前容量。

char charAt(int index)返回char在指定索引在这个字符值
int indexOf(String str)返回指定字符串第一次出现的字符串内的索引

int lastIndexOf(String str)返回指定子字符串最右边出现的字符串内的索引。

int lenght()返回长度(字符数)

StringBuffer append(Object o)将参数的字符串表示追加到序列中

StringBuffer delete(int start,int end)删除此序列的子字符串中的字符。

StringBuffer deleteCharAt(int index)删除char在这个序列中的指定位置

StringBuffer insert(int offset,Object o)将参数的字符串表示插入到此序列中指定的位置。

StringBuffer reverse()倒置该字符序列被序列的相反代替。

StringBuffer replace(int start,int end,String str)用指定的String中的字符替换此序列的子字符串中String。

String substring(int start)返回一个新的String,其中包含此字符序列中当前包的字符序列

String substring(int statr,int end)返回一个新的String,其中包含此序列中当前包含的字符的子序列。

String tostring()返回表示此顺序中的数据字符串。

例如:

package Test2;
 
public class StringBufferTest {
 
	public static void main(String[] args) {
		//StringBuffer()构造一个初始容量为16个字符的空StringBuffer对象。
		StringBuffer sbu=new StringBuffer();
		//StringBuffer(CharSequence seq)通过其他的StringBuffer对象创建一个新的StringBuffer对象
		StringBuffer sbu2=new StringBuffer("hello,world");
		//StringBuffer(int capacity)构造一个由 capacity参数指定的初始容量的空StringBuffer对象
		StringBuffer sbu3=new StringBuffer(23);
		//StringBuffer(String str)构造一个初始化为指定字符串内容StringBuffer对象。
		String str="hello,world";
		StringBuffer sbu4=new StringBuffer(str);
		
		System.out.println(sbu2.capacity());
		System.out.println(sbu2.charAt(5));
		System.out.println(sbu2.lastIndexOf("l"));
		System.out.println(sbu2.length());
		
		//StringBuilder   append(Object)将参数的字符串表示追加到序列中
		System.out.println(sbu.capacity());
		sbu.append("12345678901234567");
		System.out.println(sbu.capacity());
		//delete(int start,int end)删除此序列的子字符串中的字符。
		System.out.println(sbu2.delete(0, 2));
		//deleteCharAt(int index)//传出char在这个序列中的指定位置
		System.out.println(sbu2.deleteCharAt(2));
		//insert(int offset,Object o)将参数的字符串表示插入到此序列中的指定位置。
		System.out.println(sbu2.insert(0, "he"));
		System.out.println(sbu2.insert(4, "o"));
		//reverse()倒置该字符序列被序列的相反代替
		System.out.println(sbu2.reverse());
		System.out.println(sbu2.reverse());
		//replace(int start,int end,String str)用指定的String中的字符替换此序列的字符串中的String。
		System.out.println(sbu2.replace(0, 5, "你好"));//0-5之间不包括5
		//substring(int start)返回一个新的String,其中包含此字符序列中的当前包含的字符子序列
		System.out.println(sbu2.substring(1));
		//substring(int start,int end)返回一个新的String,其中包含此序列中当前包含的字符的子序列
		System.out.println(sbu2.subSequence(0, 5));//0-5之间不包括5
		//toString()返回表示此顺序中的 数据的字符串
		System.out.println(sbu2.toString());
		
 
	}
 
}

StringBuffer与String的转换

StringBuffer—>String StringBuffer的toString();

String的构造方法String(StringBuffer buffer)
String—>StringBuffer StringBuffer的构造方法

String str11=sbu2.toString();
	System.out.println(str11);
 
	StringBuffer buffer=new StringBuffer("abcd");
	String str33=new String(buffer);
 
	StringBuffer sbu6=new StringBuffer(str11);
	System.out.println(sbu6);

StringBuilder与BuilderBuffer的区别?

"=="与equals方法的区别?

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458997.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号