创建String对象的方法

String s1="hello";//创建一个字符串对象hello,名为s1
String s2=new String();//创建一个空字符串对象,名为s2
String s3=new String("world");//创建一个字符串对象world,名为s3

特别注意: String对象在Java中不是基本类型、是属于引用类型。

java中字符串的不变性

String对象创建后则不能被修改,是不可变的,所谓得修改其实是创建了新的对象,所指向得内存空间不同。
一个字符串在内存中创建,则这个字符串将不可改变,如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder
每次new一个字符串就是产生一个新的对象,即便两个字符串的内容是否相同,应使用"equals"方法。

String s1 ="hello";
        String s2 ="hello";
        String s3 =new String("hello");
        String s4 =new String("hello");
        //多次出现的字符串常量,java编译程序只能创建一个,所以返回Ture
        System.out.println(s1==s2);//ture
        //s1和s3是不同的对象,所以返回false
        System.out.println(s1==s3);//false
        //s3和s4是不同的对象,所以返回false
        System.out.println(s3==s4);//false

        s2=s1+"_world";
        //s2被修改,指向的是另一个新的内存空间
        System.out.println(s1==s2);//false
    }

方法

说明

int length()

返回当前字符串的长度

int indexOf(int ch)

查找 ch字符串在该字符串中第一次出现的位置

int indexOf(String str)

查找str字符串在该字符串中第一次出现的位置

int lastIndexOf(int ch)

查找ch字符在该字符串中最后一次出现的位置

int lastIndexOf(String str)

查找str字符串在改字符串中最后一次出现的位置

String substring(int beginIndex)

获取从beginIndex位置开始到结束的字符串

String substring(int beginIndex,int endIndex)

获取从beginIndex位置开始到endIndex的字符串

String trim()

返回去除了前后空格的字符串

boolean equals(object obj)

将该字符串与指定对象比较,返回ture或false

String toLowerCase()

将字符串转换为小写

String toUpperCase()

将字符串转换为大写

char charAt(int index())

获取字符串中指定位置的字符

String[] split(String regex,int limit)

将字符串分割为子字符串,返回字符串数组

byte[] getBytes()

将该字符串转换为byte数组

PS:
字节是计算机存储信息的基本单位,1个字节等于8位,gbk编码中1个汉字字符存储需要2个字节,1个英文字符存储需要一个字节。

StringBuilder和StringBuffer

当频繁的操作字符串的时,就会额外产生很多临时变量,使用StringBuilder或StringBuffer就可以避免这个问题。
StringBuilder是没有实现线程安全,而StringBuilder实现了线程安全。
StringBuilder中常用方法:

方法

说明

StringBuilder append(参数)

追加内容到当前StringBuilder对象的末尾

StringBuilder insert(位置,参数)

将内容插入到StringBuilder对象的指定位置

String toString()

将StringBuilder对象转换为String对象

int length()

获取字符串的长度