黑马程序员——String与StringBuffer、StringBuilder的应用与区别
2012-08-21 13:34
555 查看
------- android培训、java培训、期待与您交流! ----------
String与StringBuffer、StringBuilder的应用与区别
1.String:代表字符串的一个类,该类的实例对象表示的都是字符串,创建字符窜的2中方式,String str1=“abc”;或者通过构造方法来创造,而String类的构造方法有很多种,构造方法的参数中可以传入 多种不同类型的参数,比如:new String("abc"); new String(new char[]{'a','b','c'}); new String(byte[] byte,start,end); new String(new StringBuffer()); 或者new String(new
StringBuilder());等等,最终都可以将参数类型转换为String类型。
2.对字符串的常用操作:
package com.heima.stringtest;
public class StringTest {
public static void main(String[] args) {
String str="abcdrfg";
//查找
char ch=str.charAt(4); //查找某个角标的字符,如没找到则抛出异常,IndexOutOfBoundsException角标越界。
int a=str.indexOf('a');//查找某个字符所在的角标,若没找到则返回-1;此方法可用来判断某个字符是否在字符串中。
int b=str.indexOf("abc");//查找某个字符串的位置。
int c=str.indexOf('c',3);//从指定的索引处开始查找。
//对字符串进行判断
str.contains("abc");//判断此字符串是否包含某字符串,是则返回true,不是返回false;
str.contentEquals("abc");//将此字符串与给定的字符串进行比较,若相同返回true,若不同返回false;
str.endsWith("fg");//判断此字符串是否与给定的字符串结尾。
str.startsWith("abc",0);//判断此字符窜从给定为止开始是否与给定的字符串开头。
str.isEmpty();//判断词字符串是否为空。
str.matches(regex);//判断此字符串是否与给定的正则表达式相匹配,若匹配返回true,若不匹配返回false。
//替换
str.replace("abc", "qqq"); //用新的字符串替换老的字符串,前面的是老字符串,后面的是新字符串。
str.replace('a', 'q');//用新的字符替换老的字符,前面的是需要被替换的字符,后面的是新字符。
str.replaceAll(regex, replacement);//regex代表一个正则表达式,用新的字符串替换掉所有匹配该正则表达式的字符串。
str.replaceFirst(regex, replacement);//用新的字符串只替换第一个符合正则表达式的子字符串。
//转换
str.getBytes();//将字符串转换成字节数组,在IO流技术中要用到字节与字符的相互转换。
str.toCharArray();//将此字符串转换成一个字符数组。
str.toLowerCase();//将此字符串全部转为小写。
str.toUpperCase();//将此字符串全部转成大写。
str.trim();//去掉此字符串的头部跟尾部的空格。
str.subSequence(2, 5);//返回该字符串的字串,包含头,不包含尾。
str.substring(0, str.length());//返回一个新的字符子串,包含头,不包含尾。
String.valueOf(true);//返回boolean参数的字符串表现形式。
String.valueOf(Object obj);//返回任意对象的字符串表现形式。
//切割
String[] s=str.split(regex);//用给定的正则表达式来切割该字符串,返回的是一个字符数组。
}
}
3.StringBuffer:是一个长度可变的字符串缓冲区,可以用来存储字符串用的,同样该缓冲也有多种用来操作字符串的方法。
package com.heima.stringtest;
public class StringBufferTest {
public static void main(String[] args) {
StringBuffer sb=new StringBuffer();//有多种构造函数,可以传入字符串参数,
//构造一个不带字符串的缓冲区,也可以构造一个具有指定字符串内容的缓冲区。
sb.append("要存储的内容");//参数可以是各种不同类型,最终都将以字符串的形式添加进去。有
boolean,char,char[],double,float,int,long,Object,StringStringBuffer,字符串序列CharSequence等。
sb.append(true); //不管怎么改变缓冲区中的内容,返回的始终是这个字符串容器。
//sb.insert(offset, str);//可以将各种不同类型的数据插入到该缓冲区的指定的位置上。
sb.reverse();//将字符串缓冲区进行反转,返回的还是该字符串缓冲区容器。
}
}
4:StringBuilder与StringBuffer的区别
这2者的方法都是一样的,唯一的区别是一个是线程同步的,一个是线程不同的。在JDK1.5之前只有StringBuffer,从 JDK1. 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。StringBuffer是线程同步的,如果有多个线程同时在对容器进行操作,则会更安全,但是效率较低。开发建议用StringBuilder,速度快,效率高。
------- android培训、java培训、期待与您交流! ----------
详细请查看:http://edu.csdn.net/heima/
String与StringBuffer、StringBuilder的应用与区别
1.String:代表字符串的一个类,该类的实例对象表示的都是字符串,创建字符窜的2中方式,String str1=“abc”;或者通过构造方法来创造,而String类的构造方法有很多种,构造方法的参数中可以传入 多种不同类型的参数,比如:new String("abc"); new String(new char[]{'a','b','c'}); new String(byte[] byte,start,end); new String(new StringBuffer()); 或者new String(new
StringBuilder());等等,最终都可以将参数类型转换为String类型。
2.对字符串的常用操作:
package com.heima.stringtest;
public class StringTest {
public static void main(String[] args) {
String str="abcdrfg";
//查找
char ch=str.charAt(4); //查找某个角标的字符,如没找到则抛出异常,IndexOutOfBoundsException角标越界。
int a=str.indexOf('a');//查找某个字符所在的角标,若没找到则返回-1;此方法可用来判断某个字符是否在字符串中。
int b=str.indexOf("abc");//查找某个字符串的位置。
int c=str.indexOf('c',3);//从指定的索引处开始查找。
//对字符串进行判断
str.contains("abc");//判断此字符串是否包含某字符串,是则返回true,不是返回false;
str.contentEquals("abc");//将此字符串与给定的字符串进行比较,若相同返回true,若不同返回false;
str.endsWith("fg");//判断此字符串是否与给定的字符串结尾。
str.startsWith("abc",0);//判断此字符窜从给定为止开始是否与给定的字符串开头。
str.isEmpty();//判断词字符串是否为空。
str.matches(regex);//判断此字符串是否与给定的正则表达式相匹配,若匹配返回true,若不匹配返回false。
//替换
str.replace("abc", "qqq"); //用新的字符串替换老的字符串,前面的是老字符串,后面的是新字符串。
str.replace('a', 'q');//用新的字符替换老的字符,前面的是需要被替换的字符,后面的是新字符。
str.replaceAll(regex, replacement);//regex代表一个正则表达式,用新的字符串替换掉所有匹配该正则表达式的字符串。
str.replaceFirst(regex, replacement);//用新的字符串只替换第一个符合正则表达式的子字符串。
//转换
str.getBytes();//将字符串转换成字节数组,在IO流技术中要用到字节与字符的相互转换。
str.toCharArray();//将此字符串转换成一个字符数组。
str.toLowerCase();//将此字符串全部转为小写。
str.toUpperCase();//将此字符串全部转成大写。
str.trim();//去掉此字符串的头部跟尾部的空格。
str.subSequence(2, 5);//返回该字符串的字串,包含头,不包含尾。
str.substring(0, str.length());//返回一个新的字符子串,包含头,不包含尾。
String.valueOf(true);//返回boolean参数的字符串表现形式。
String.valueOf(Object obj);//返回任意对象的字符串表现形式。
//切割
String[] s=str.split(regex);//用给定的正则表达式来切割该字符串,返回的是一个字符数组。
}
}
3.StringBuffer:是一个长度可变的字符串缓冲区,可以用来存储字符串用的,同样该缓冲也有多种用来操作字符串的方法。
package com.heima.stringtest;
public class StringBufferTest {
public static void main(String[] args) {
StringBuffer sb=new StringBuffer();//有多种构造函数,可以传入字符串参数,
//构造一个不带字符串的缓冲区,也可以构造一个具有指定字符串内容的缓冲区。
sb.append("要存储的内容");//参数可以是各种不同类型,最终都将以字符串的形式添加进去。有
boolean,char,char[],double,float,int,long,Object,StringStringBuffer,字符串序列CharSequence等。
sb.append(true); //不管怎么改变缓冲区中的内容,返回的始终是这个字符串容器。
//sb.insert(offset, str);//可以将各种不同类型的数据插入到该缓冲区的指定的位置上。
sb.reverse();//将字符串缓冲区进行反转,返回的还是该字符串缓冲区容器。
}
}
4:StringBuilder与StringBuffer的区别
这2者的方法都是一样的,唯一的区别是一个是线程同步的,一个是线程不同的。在JDK1.5之前只有StringBuffer,从 JDK1. 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。StringBuffer是线程同步的,如果有多个线程同时在对容器进行操作,则会更安全,但是效率较低。开发建议用StringBuilder,速度快,效率高。
------- android培训、java培训、期待与您交流! ----------
详细请查看:http://edu.csdn.net/heima/
相关文章推荐
- Java基础之String、StringBuffer与StringBuilder的区别及应用场景
- String、StringBuilder和StringBuffer的区别和应用场景
- Java String,StringBuilder,StringBuffer区别和实际应用总结
- 【黑马程序员】String和StringBuffer 的区别与应用!
- 黑马程序员--String,stringbuffer与stringbuilder的应用
- String、StringBuffer、StringBuilder的区别及应用场景
- String与StringBuffer还有StringBuilder三者区别与应用
- Java基础之String,StringBuffer与StringBuilder的区别及应用场景
- JAVA中String与StringBuffer,StringBuilder应用的区别
- Java基础之String,StringBuffer与StringBuilder的区别及应用场景
- 详解String、StringBuffer和StringBuilder的区别和应用场景
- 【黑马程序员】String,StringBuffer和StringBuilder的区别
- String,StringBuffer与StringBuilder的区别及应用场景
- String、Stringbuilder、Stringbuffer区别及应用场景
- String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- String、StringBuffer与StringBuilder之间区别
- String、StringBuffer、StringBuilder三者之间的区别
- String、StringBuffer和StringBuilder的区别
- String、StringBuffer与StringBuilder之间区别