【黑马程序员】String与StringBuffer(七)

来源:互联网 发布:parsley.js 怎么汉化 编辑:程序博客网 时间:2024/05/22 02:05

------------android培训java培训、期待与您交流! ----------------

String与StringBuffer

一、String
①String s1 = “abc”与String s2 = new String(“abc”)的区别
对于String s1 = “abc”;来说,s1是一个类类型变量,“abc”是一个对象
因此二者的区别在于,s1在内存中有一个变量,s2在内存中有两个变量
注:字符串最大的特点是:一旦被初始化就不可以被改变

示例:
public class Test12 {public static void main(String[] args){//新建字符串s1String s1 = "abc";//新建字符串s2String s2 = new String("abc");//新建字符串s3String s3 = "abc";//比较s1与s2的内存地址System.out.println(s1==s2);//比较s1与s2的内容System.out.println(s1.equals(s2));//比较s1与s3的内存地址System.out.println(s1==s3);//比较s1与s3的内容System.out.println(s1.equals(s3));//比较s2与s3的内存地址System.out.println(s2==s3);//比较s2与s3的内存地址System.out.println(s2.equals(s3));}}


运行结果:
false
true
true
true
false
true
②:String常见操作
1>、lenght()获取字符串的长度
2>、charAt(int i)获取没位置上的字符
3>、indexOf(int ch,int fromIndex)获取从fromIndex开始第一次出现ch时的下标
4>、lastIndexOf(int ch)从后往前获取第一次ch出现时的下标
5>、contains(String str)判断字符串中是否含有str
6>、isEmpty()判断字符串是否为空
7>、startWith(String str)判断字符串是否以str开头
8>、endWith(String str)判断字符串是否以str结尾
9>、String(char[],offset,count)将字符数组从offset位置至count位置转化为字符串(另一种方式 valueOf(char[],offset,count)此为静态方法)
10>、toCharArray()将字符串转化为字符数组
11>、String(byte[],offset,count)讲字节数组转化为字符串
12>、getByte()讲字符串转化为字符数组
13>、replace(char old,char new)讲字符串中的old字符换为new字符(替换之后原字符串依旧存在)
例:
public class Test{public static void main(String[] args) {String s = "abc";String s1 = s.replace('a', 'c');System.out.println("s="+s);System.out.println("s1="+s1);}}

运行结果为:
s=abc
s1=cbc
14>、split(String str)讲原字符串从str处分开,分为多个字符串,返回值是String [](子字符串中将不包含str字符串)
15>、subString(int begin,int end)讲字符串从begin处截取至end处,新字符串中包含begin角标处的字符,不包含end角标处的字符
16>、toUpperCase()将字符串转化为大写
17>、toLowerCase()将字符串转化为小写
18>、trim()去掉字符串首位空格
19>、compareTo(String str)将原字符串与str进行自然顺序的比较


二、StringBuffer 
①简介
StringBuffer是字节缓冲区,是一种容器。
②特点
1>、长度可以变化
2>、可以直接操作多种数据
3>、最终可以通过toString方法变为字符串
③常用方法
1>、append(数据)将指定数据作为参数添加到已有数据的结尾处
2>、insert(int index,数据)将制定数据添加到index的位置
3>、delete(start,end)删除缓冲区中从start到end 的数据(小技巧:delete(0,sb.lenght())清空缓冲区)
4>、deleteCharAt(int index)删除指定位置的字符
5>、charAt(int index)获取index下标处的字符
6>、indexOf(char c)获取c所在位置的下标
7>、lastIndexOf(char c)获取倒序时c所在位置的下标
8>、lenght()获取长度
9>、subString(int start,int end)截取从start到end位置的字符串
10>、replace(Int start,int end,String str)将str替换到start到end的位置上
11>、setCharAt(int index,char c)将下标为index位置的字符替换为c
12>、reverse()反转
13>、getChars(int srcBegin,int srcEnd,char[]chs,chsBegin)将字符缓冲区中的指定数据,存入从chasBegin开始的chs中
(如果指定数据的长度,chs的长度则会出现角标越界异常)


三、StringBuffer与StringBulider的区别
StringBuffer线程同步,StringBulider线程不同步,在开发中使用StringBuiilder较多,因为单线程时不用判断锁,所以效率高。


------------android培训java培训、期待与您交流! ----------------

详细请查看:http://edu.csdn.net/heima



0 0
原创粉丝点击