Java基础之String

Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义String,每个用双引号括起来的字符串都是String类的一个实例。

 

子串

String类的substring方法可以从一个较大的字符串提取出一个子串。例如:

String str=”Hello”;

String sub=str.substring(0,3);

Substring方法的第二个参数是不想复制的第一个位置。

检测字符串是否相等

可以使用equals方法检测两个字符是否相等。例如:

s.equals(t);

如果相等返回true,否则返回false

代码点与代码单元

Java字符串由char序列组成。

字符数据类型是一个采用UTF-16编码表示Unicode代码点的代码单元。大多数的常用Unicode字符使用一个代码单元就可以表示,而辅助字符需要一对代码单元表示。

length方法将返回采用UTF-16编码表示的给定字符串所需要的代码单元数量。例如:

String str=””Hello;

int n=str.length(); //n is 5

 

调用s.charAT(n)将返回位置n的代码单元,n介于0~s.length()-1之间。例如:

char first = str.charAt(0);  //first is ‘H’

4  String  StringBuffer  StringBuilder

 String(JDK1.0时代)         不可变字符序列

 StringBuffer(JDK1.0时代)    线程安全的可变字符序列

 StringBuilder(JDK1.5时代)   非线程安全的可变字符序列

 

StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。

StringBuilder1.5新引入的,其前身就是StringBufferStringBuilder的效率比StringBuffer稍高,如果不考虑线程安全,StringBuilder应该是首选。

 

用法对比:

经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。

 而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,再改变对象引用。

String s1="Heart";

String s2="Raid";

String str="";

str=s1

 

StringBuilder temp=new StringBuilder(s1)

temp.append(s2);

str=temp.toString();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值