------- android培训、java培训、java基础学习技术总结、期待与您交流! ----------
与字符串相关的类,有String、StringBUffer、StringBuilder。
String类。
1.创建String类型对象 String str=new String("abcdefghdef");
2.下面是String类中常见的一些方法
public class Test {
public static void main(String []args){
String str=new String("abcdefghdef");//定义一个字符串并对其进行初始化
//1.获取
int len=str.length(); //获取字符串str的长度
char ch=str.charAt(3); // 获取字符串str中位置为3的字符
int i1=str.indexOf('d'); //获取第一次出现字符d的位置
int i2=str.indexOf("def"); //获取字符串str中第一次出现字符串def的位置
int i3=str.indexOf('d', 4); //获取字符串str中从位置4开始第一次查找到d的位置
int i4=str.indexOf("def", 4); //获取字符串str中从位置4开始第一次查找到def的位置
//2.判断
boolean b1=str.contains("def"); // 判断字符串中是否包含字符串def
boolean b2=str.isEmpty(); //判断字符串是否为空
boolean b3=str.startsWith("abc"); //判断是否以指定字符串开头 //
boolean b4=str.endsWith("def"); //判断是否以指定字符串结尾
boolean b5=str.equals("abcdef"); //判断字符串与字符串是否相同
//3.转换
char[] chs=new char[]{'a','b','c','d','e'};
String str1=new String(chs);
str1=new String(chs,0,chs.length); //将指定的字符数组的一部分转换成字符串
char[] chs1=str1.toCharArray(); //将字符串转换成字符数组
byte[] by=str1.getBytes(); //将字符串转化成字节数组
//4.替换
String str2=str.replace('d', 'a'); //将字符串中字符d全部替换成a
//5.切割String[] split(regex);
//6.截取
String str3=str.substring(2,4); //将字符串str中从2到4的字符截取并付给str3
//7.转换
str.toLowerCase(); //字符串中字符大写转换为小写
str.toUpperCase(); //字符串中字符小写转换为大写
str.trim(); //去除字符串两端的空格
str.compareTo(str1); //对两个字符串按顺序进行自然比较
}
}
StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
note:不能通过付值符号对他进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中付值的时候可以通过它的append方法.
sb.append("hello");
字符串连接操作中StringBuffer的效率要比String高:
String str = new String("welcome to ");
str += "here";
的处理步骤实际上是通过建立一个StringBuffer,然后调用append(),最后
再将StringBuffer toString();
这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.
这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.
java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。
StringBuilder。与该类相比,通常应该优先使用 java.lang.StringBuilder类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。