一篇文章学会使用String类

一篇文章学会使用String类

String定义

String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。

例如:

String str = "abc";

字符串是不变的; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,所以可以共享它们。

例如:

 String str = "abc";

相当于:

char data[] = {'a', 'b', 'c'};
String str = new String(data);

常用String构造器

1.初始化新创建的 String对象,使其表示空字符序列。

//String()
String s2 = new String();

2.初始化新创建的String对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。

String(String original)
//String(String original)
String s3=new String("asd");
System.out.println(s3);

3.分配新的 String ,使其表示当前包含在字符数组参数中的字符序列。

String(char[] value)
//String(char[] value)
char[] ch=new char[]{'a','b','c','d','e','f'};
System.out.println(ch);

4.分配一个新的 String ,其中包含字符数组参数的子数组中的字符。

String(char[] value, int offset, int count)
//String(char[] value, int offset, int count)
char[] ch=new char[]{'a','b','c','d','e','f'};
String s4=new String(ch,1, 3);
System.out.println(s4);

5.构造一个新的String由指定用指定的字节的数组解码charset 。

//String(byte[] bytes, String charsetName)
byte[] arr="今天日子不错".getBytes("gbk");
String s6=new String(arr,"gbk");
System.out.println(s6);

String方法摘要

string在jdk中的方法非常的多不与要记那么多,记住常用的就行,要用其他的再到api中查询。

StringBuffer

线程安全,可变的字符序列。 字符串缓冲区类似于String ,但可以进行修改。 在任何时间点它都包含一些特定的字符序列,但序列的长度和内容可以通过某些方法调用来改变。

StringBuffer构造器

1.构造一个字符串缓冲区,其中没有字符,初始容量为16个字符。

StringBuffer()

2.构造一个字符串缓冲区,其中没有字符和指定的初始容量。

StringBuffer(int capacity)

3.构造一个初始化为指定字符串内容的字符串缓冲区。

StringBuffer(String str)

4.构造一个字符串构建器,其中包含与指定的 CharSequence相同的字符。

StringBuilder(CharSequence seq)

StringBuffer方法

StringBuffer()的方法也很多,记住常用的就行。

StringBuilder

一个可变的字符序列。 此类提供与StringBuffer兼容的API,但不保证同步。 此类设计用作StringBuffer替代品,用于单个线程使用字符串缓冲区的位置(通常情况下)。 在可能的情况下,建议使用此类优先于StringBuffer因为在大多数实现中它会更快。

StringBuilder构造器

1.构造一个字符串构建器,其中不包含任何字符,初始容量为16个字符。

StringBuilder()

2.构造一个字符串构建器,其中没有字符,并且具有 capacity参数指定的初始容量。

StringBuilder(int capacity)

3.构造一个字符串构建器,其中包含与指定的 CharSequence相同的字符。

StringBuilder(CharSequence seq)

4.构造一个初始化为指定字符串内容的字符串构建器。

StringBuilder(String str)

和StringBuffer一样的。

StringBuffer 和 StringBuilder 的区别

1.StringBuffer:线程安全,StringBuilder:线程不安全。因为 StringBuffer 的所有公开方法都是 synchronized 修饰的,而 StringBuilder 并没有 synchronized 修饰。

2.StringBuffer 是线程安全的,它的所有公开方法都是同步的,StringBuilder 是没有对方法加锁同步的,StringBuilder 的性能要远大于 StringBuffer。

3.StringBuffer 适用于用在多线程操作同一个 StringBuffer 的场景,如果是单线程场合 StringBuilder 更适合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值