Java之String类

作者: 如果仲有听日 | 来源:发表于2018-06-11 18:16 被阅读0次

    String


    1. String类基本特性

    String类再Java类中也是一个很重要的类,String类的对象是不需要使用new的(免new),打印其对象(toString被重写)是没有地址的

    String类的对象字符串是一个常量,例

        String str = "stringTest";

        str = "abcdef";

        System.out.println(str); //这里打印出abcdef,但是stringTest和abcdef是常量,是不可变的

    查询String类的申明中前几行可以发现是这样定义的:

    String定义的前几行

    也就是说,String类的对象本质上是一个字符数组,并且定义为了final,一旦字符串数组建立,那么终身不变,为一个常量。

    但是str作为一个String类的对象变量,其指向的引用地址是可以改变的,例如:

    2 使用String类的构造方法(非免new)和equals方法

    str==str2是对象变量指向地址的比较判断,str是免new出来的,而str2是new出来的,地址肯定不一样,所以返回false

    str==str3, 由于str赋值的时候已经有"abcdef"了,str3在赋值的时候会去检查是否在常量区中有"abcdef",如果有就不会去创建新的value数组,而使用str创建时的value数组, 因此是返回true

    str.equals(str2)可以从下面的String类的equals重写方法中得知:是判断2个字串是否相等,所以返回true

    String类equals方法

    总结:我们可以发现免new的对象,如果字符串相同,则变量指向的地址相同。

        而new出来的对象,肯定是地址不同的字符串数组

    3. String类的构造方法

    3.1 String(byte[] bytes)

    通过使用平台的默认字符集(ascii)解码指定的字节数组来构造新的String。

    3.2 String(byte[] bytes, int offset, int length)

    通过使用平台的默认字符集解码指定的字节子阵列来构造新的String。

    3.3 String(char[] value)

    分配一个新的String,以便它表示当前包含在字符数组参数中的字符序列。

    3.3 和3.1、3.2的区别是char[]数组不去解码编码表,而3.1、3.2需要去查询编码表解码

    4. String类的其他常用方法

    4.1 lint length()

    返回此字符串的长度。

    4.2 String substring(int beginIndex, int endIndex)

    返回一个字符串,该字符串是此字符串的子字符串。

    这个方法也是对字串进行裁剪的常用方式

    截取字符串

    4.3 boolean startsWith(Stringprefix)

    测试此字符串是否以指定的前缀开头。

    4.4 public boolean contains(CharSequence s)

    当且仅当此字符串包含指定的char值序列时才返回true。

    4.5 byte[] getBytes()

    使用平台的默认字符集将此String编码为字节序列,将结果存储到新的字节数组中。

    这个方法在zookeeper的接口参数中有应用

    打印结果是97~104

    这里只能一个个打印,否则是乱码

    4.6 char[] toCharArray()

    将此字符串转换为新的字符数组。不查询编码表

    4.7 public char charAt(int index)

    返回char指定索引处的值。指数范围为0至length() - 1。

    例:获取置顶字符串中,大写字母、小写字母、数字的个数

    4.8 大小写转换

    public String toLowerCase()

    public String toUpperCase()

    例:将给定字符串第一个字母大写,后面的字母全部小写

    相关文章

      网友评论

        本文标题:Java之String类

        本文链接:https://www.haomeiwen.com/subject/zieheftx.html