Java基础--String篇

Java基础–String篇

1.String

String类型的对象是不可变的,对象内部的成员变量值不可改变。下图是String类中的成员变量:
Java基础--String篇_第1张图片可以看到第一个成员变量的属性为:private final char value[];用final修饰,并且将输入的字符串都储存在一个数组中。
字符串之间进行比较时用equals方法,一般不用==。注意:往往在项目中程序员们更倾向于将确定的字符串结果对象作为使用equals方法的主体对象,这样可以避免发生空指针异常的情况。例如下图所示:
Java基础--String篇_第2张图片Java基础--String篇_第3张图片

2. StringBuilder和StringBuffer

StringBuilder 线程不安全,效率高(一般使用它)StringBuffer 线程安全,效率低。
StringBuilder与StringBuffer都继承自AbstractStringBuilder类,在AbstractStringBuilder中也是使用字符数组保存字符串,如下就是,可知这两种对象都是可变的。
char[] value
append()方法:

StringBuffer sb= new StringBuffer("Hello ");
        String aString = "World";
        sb.append(aString,0,5);
        System.out.println(sb.toString());

输出结果为Hello World
这个操作将aString的从索引位置0开始的由5个字符组成的子串[0,5)追加到StringBuffer对象buf中。然后sb对象就会包含字符串"Hello World"最后用toString()方法打印出来。
Reverse()方法 将字符串倒序输出。
Insert()方法
比如:sb.insert(0,“I”)将下表为0的字符改为I字符
delete()方法:
sb.delete(int start, int end),删除索引位置为[0,7)的字符
indexOf()方法:
sb.indexOf(String str)查找目标子串str在sb中的索引位置,返回int类型的值,如果没有则返回-1;

你可能感兴趣的:(java,字符串)