黑马程序员-------String,StringBuffer,StringBuilder
2014-02-24 14:30
253 查看
---------------------- ASP.Net+Unity开发 .Net培训 期待与您交流! ----------------------
2,字符串一旦初始化就不可以被改变
3, String str= "abc"; String str1 = new String("abc");有什么区别?
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。
| String s1 = "abc";
| String s2 = new String("abc");
s1== s2 ; //比较是内存中的地址,所以为false
s1.equals(s2); //String类复写了Object类中的equals方法,
//该方法用于判断字符串是否相同。
s1和s2有什么区别?
s1在内存中有一个对象,s2在内存中有两个对象。
String的常见的方法:
常见操作 | 获取
| 判断
| 转换
获取
public int length();
public char charAt(int index);
注意:当index超出字符串的脚标范围时会发生StringIndexOutOfBoundsException.
public int indexOf(int ch);返回的是char在字符串第一次出现的位置
注意:如果ch在字符串中没有找到,会返回-1
public int indexOf(int ch, int fromIndex);从fromIndex位置开始,
获取ch在字符串第一次出现的位置
public int indexOf(String str);
public int indexOf(String str, int fromIndex);
public int lastIndexOf(int ch);
判断
public boolean endsWith(String str);
public boolean startsWith(String str);
public boolean isEmpty(); 字符串长度是否为0,
public boolean contains(CharSequence s);是否包含指定字符串
特殊之处:indexOf(str):可以索引str第一次出现的位置,
如果返回-1,表示str不在字符串中。
if((indexOf(str) != -1)){
....
}
public boolean equals(String str);
public boolean equalsIgnoreCase(String str);
转换(字符串和字节数组在转换过程中,是可以指定编码表的)
字符数组---->字符串
构造方法: new String(char[] value)
new String(char[] val, int offset, int count):将字符数组中的一部分转成字符串
静态方法: public static String copyValueOf(char[] chars)
public static String copyValueOf(char[] chars, int offset,int count)
public static String valueOf(char[]);
*字符串 ----> 字符数组
public char[] toCharArray()
字节数组 ----> 字符串
构造方法: new String(byte[] value)
字符串 ----> 字节数组
public byte[] getBytes();
基本数据类型 ----> 字符串
public String valueOf(int)
public String valueOf(double)
public String valueOf()
替换
public String replace(char oldchar, char newchar);替换单个字符
public String replace(CharSequence target, CharSequence replacement);替换一部分字符串
切割
public String[] split(regex);
eg: String str = "zhangsan,lisi,wangwu";
String[] arrStr = s.split(",");
for(String s : arrStr){
.................
}
子串,获取字符串中的一部分
public String subString(int begin);
public String subString(int begin,int end);//得到的子串包含begin位不包含end索引位的字符
转换,去除空格,比较
大小写转换
public String toUpperCase();
public String toLowerCase();
去除字符串两端的多个空格
public String trim();
对两个字符串进行自然顺序的比较
public int compareTo(String str);
eg: String s1="abc";
String s2 = "aaa";
System.out.println(s1.compareTo(s2)); //输出1
是线程同步的,安全的
是一个容器。
1, 长度可以变化,
2, 可以操作多个数据类型
3, 最终会通过toString方法变成字符串
有 CRUD操作:create,read,update,delete
存储:
添加: public StringBuffer append();//将指定数据作为参数添加到结尾处。
eg: sb.append("abc").append(true).append(43); //名词:方法调用链
插入: public StringBuffer insert(int, str); //将指定数据作为参数插入到指定位置。
删除:
public StringBuffer delete(int start, int end);
//删除从脚标start开始到end(不包含end)的字符
eg: stringBuffer.delete(0, stringBuffer.length()); //全部清空stringBuffer
public StringBuffer deleteCharAt(index);
//删除单个字符
获取:
public char charAt()
public int indexOf(String str)
public int length()
public String substring(int start, int end); //返回的是String而不是StringBuffer
修改(替换):
public StringBuffer replace(int start, int end, String str);
public void setCharAt(int index, Char char); //替换某一位字符,没有返回
反转
public StringBuffer reverse();
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);
StringBuffer中从脚标srcBegin到srcEnd的字符(不包含srcEnd位的字符)放入到字符数组dst中,从脚标dstBegin开始放入;
线程不同步,不安全,所以多线程时使用StringBuffer;一般情况下建议使用StringBuilder可以提高效率
---------------------- ASP.Net+Unity开发 .Net培训 期待与您交流! ----------------------
String类
1,字符串是一个特殊的对象2,字符串一旦初始化就不可以被改变
3, String str= "abc"; String str1 = new String("abc");有什么区别?
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。
| String s1 = "abc";
| String s2 = new String("abc");
s1== s2 ; //比较是内存中的地址,所以为false
s1.equals(s2); //String类复写了Object类中的equals方法,
//该方法用于判断字符串是否相同。
s1和s2有什么区别?
s1在内存中有一个对象,s2在内存中有两个对象。
String的常见的方法:
常见操作 | 获取
| 判断
| 转换
获取
public int length();
public char charAt(int index);
注意:当index超出字符串的脚标范围时会发生StringIndexOutOfBoundsException.
public int indexOf(int ch);返回的是char在字符串第一次出现的位置
注意:如果ch在字符串中没有找到,会返回-1
public int indexOf(int ch, int fromIndex);从fromIndex位置开始,
获取ch在字符串第一次出现的位置
public int indexOf(String str);
public int indexOf(String str, int fromIndex);
public int lastIndexOf(int ch);
判断
public boolean endsWith(String str);
public boolean startsWith(String str);
public boolean isEmpty(); 字符串长度是否为0,
public boolean contains(CharSequence s);是否包含指定字符串
特殊之处:indexOf(str):可以索引str第一次出现的位置,
如果返回-1,表示str不在字符串中。
if((indexOf(str) != -1)){
....
}
public boolean equals(String str);
public boolean equalsIgnoreCase(String str);
转换(字符串和字节数组在转换过程中,是可以指定编码表的)
字符数组---->字符串
构造方法: new String(char[] value)
new String(char[] val, int offset, int count):将字符数组中的一部分转成字符串
静态方法: public static String copyValueOf(char[] chars)
public static String copyValueOf(char[] chars, int offset,int count)
public static String valueOf(char[]);
*字符串 ----> 字符数组
public char[] toCharArray()
字节数组 ----> 字符串
构造方法: new String(byte[] value)
字符串 ----> 字节数组
public byte[] getBytes();
基本数据类型 ----> 字符串
public String valueOf(int)
public String valueOf(double)
public String valueOf()
替换
public String replace(char oldchar, char newchar);替换单个字符
public String replace(CharSequence target, CharSequence replacement);替换一部分字符串
切割
public String[] split(regex);
eg: String str = "zhangsan,lisi,wangwu";
String[] arrStr = s.split(",");
for(String s : arrStr){
.................
}
子串,获取字符串中的一部分
public String subString(int begin);
public String subString(int begin,int end);//得到的子串包含begin位不包含end索引位的字符
转换,去除空格,比较
大小写转换
public String toUpperCase();
public String toLowerCase();
去除字符串两端的多个空格
public String trim();
对两个字符串进行自然顺序的比较
public int compareTo(String str);
eg: String s1="abc";
String s2 = "aaa";
System.out.println(s1.compareTo(s2)); //输出1
StringBuffer
是字符串缓冲区,是线程同步的,安全的
是一个容器。
1, 长度可以变化,
2, 可以操作多个数据类型
3, 最终会通过toString方法变成字符串
有 CRUD操作:create,read,update,delete
存储:
添加: public StringBuffer append();//将指定数据作为参数添加到结尾处。
eg: sb.append("abc").append(true).append(43); //名词:方法调用链
插入: public StringBuffer insert(int, str); //将指定数据作为参数插入到指定位置。
删除:
public StringBuffer delete(int start, int end);
//删除从脚标start开始到end(不包含end)的字符
eg: stringBuffer.delete(0, stringBuffer.length()); //全部清空stringBuffer
public StringBuffer deleteCharAt(index);
//删除单个字符
获取:
public char charAt()
public int indexOf(String str)
public int length()
public String substring(int start, int end); //返回的是String而不是StringBuffer
修改(替换):
public StringBuffer replace(int start, int end, String str);
public void setCharAt(int index, Char char); //替换某一位字符,没有返回
反转
public StringBuffer reverse();
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin);
StringBuffer中从脚标srcBegin到srcEnd的字符(不包含srcEnd位的字符)放入到字符数组dst中,从脚标dstBegin开始放入;
StringBuilder (jdk1.5 版本之后出现)
一个可变的字符序列。线程不同步,不安全,所以多线程时使用StringBuffer;一般情况下建议使用StringBuilder可以提高效率
---------------------- ASP.Net+Unity开发 .Net培训 期待与您交流! ----------------------
相关文章推荐
- 黑马程序员---String字符串、StringBuffer 、StringBuilder
- 黑马程序员—String、StringBuffer、StringBuilder
- 黑马程序员——JAVA练习——String、StringBuffer和StringBuilder
- 黑马程序员——Java String、StringBuffer、StringBuilder、基本数据类型对象包装类
- 黑马程序员--05.String字符串类--04.【StringBuffer】【StringBuilder】
- 黑马程序员----论String,StringBuffer,StringBuilder,基本数据类型对象包装类
- 黑马程序员 _Java中的String、StringBuffer、StringBuilder
- 黑马程序员——String与StringBuffer、StringBuilder的应用与区别
- 黑马程序员-String、StringBuffer和StringBuilder
- 黑马程序员--String,StringBuffer,StringBuilder的描述
- 黑马程序员java基础String、StringBuffer、StringBuilder笔记
- 黑马程序员 日记四:String、StringBuffer和StringBuilder的比较与总结
- 黑马程序员_String-StringBuffer-StringBuilder
- 黑马程序员--------java String、StringBuffer、StringBuilder
- 黑马程序员------String(概述、功能、练习、StringBuffer、StringBuilder)
- (五)黑马程序员——Java中的字符串操作类(String、StringBuilder、StringBuffer)
- 【黑马程序员】String,StringBuffer和StringBuilder的区别
- 黑马程序员——java中String、StringBuffer、StringBuilder简单见解
- 黑马程序员——03 String,StringBuffer,StringBuilder的联系以及三者的常用方法
- 黑马程序员_源自梦想 String、StringBuffer、StringBuilder