美文网首页java学习记录
java常用类---String类

java常用类---String类

作者: 一花一世界yu | 来源:发表于2020-04-14 21:00 被阅读0次

    一、重点知识

    自己手写的equals方法最好先判断一下需要判断的参数是否为空,不然可能会出现空指针异常。

    善用super.  调用父类写过的方法,使代码更简洁
    重写父类的得equals方法,可以使用super.调用父类的equals方法,这样重复的属性就不用再重新判断了,提高了代码的简洁性

    字符串常量池不允许存储相同的字符串

    String中比较地址用 == 比较内容用 equals

    api文档中方法没标明权限修饰符,一般就是默认是public

    String类中的split("")切割方法""里的都算一个切割符,在切割时切割符会被除去,切割符在开头,中间都可以,但是在末尾不会再切割,多少个切割符在末尾都会被忽略

    str2.replace("!","");
    replace方法还可以去掉指定的字符,用一对双引号里面什么都不加来代替原来的字符。

    切记,在二维数组内层数组分配空间之前,绝对不能直接通过下标调用内层数组,否则就会出现空指针异常

    二、重点问题

    1、file类的判断问题

    public boolean isDirectory():判断是否是文件目录

    public boolean isFile() :判断是否是文件

    判断的前提,该文件是否存在在硬盘中,不存在就返回false,所以可以先用exsits判断是否存在

    public boolean renameTo(File dest):把文件重命名为指定的文件路径

    注意,要想保证返回true,需要file1在硬盘中是存在的,且file2不能在硬盘中存在。想改变的文件放前面,指定位置放参数中

    2、String字符串的null 和 ""的区别

    在string中 null和" "是有区别的

    string s1 = new string();

    System.out.print(s1)//结果为空白

    "  "对象是创建好了的,只是字符串常量池中啥也没存,没输出地址,是因为string重写了tostring方法

    string s2 = null

    System.out.print(s2)//结果为null

    s2压根就没开辟内存,对象创建只有声明,但没有对应的内存空间,对象此时不算存在,直接访问属性或者方法会报错

    三、课堂知识

    能够表示字符串:String类,StringBuffer类,StringBuilder类。

    String类:字符串内容不可以改变。

    StringBuffer和StringBuilder:内容可以改变。但是StringBuilder的效率更高,因为他是线程不安全的

    3.1、String类:内容不能更改

    3.1.1 字符串常量

    字符串的数据是常量,存储在字符串常量池中,字符串的数值是不能更改的。字符串池中不允许存储重复的字符串。因为复用性。

    字符串:0-多个字符的序列。使用双引号引起来的内容。

    "",字符串对象存在,但是里面没有字符

    "a",字符串中有一个字符

    "abc",

    "hello world",

    注意:'a'和"a"

    char c = 'a';//基本数据类型

    String s = "a";//引用类型,String类的

    3.1.2 null和""

    null,是指字符串对象压根就不存在,内存中没有

    "",空字符串:字符串对象存在的,开辟内存,但是内容是空的。

    3.1.3 字符串下标

    字符串中的每个字符,其实都有固定的下标,index,从0开始,到长度减1。超出范围就下标越界。同数组类似。

    3.1.4 String类的常用方法

    1、创建字符串:

    //1.直接创建

    Strings1="abc";

    //2.通过构造方法

    Strings2=newString();//""

    //3.其他的构造方法

    newString("abc");

    newString(byte[]);

    newString(byte[] ,offset,length);

    newString(char[])

    newString(char[] ,offset,count);

    //....

    2、常用方法:

    A:搜索类

    indexOf(int)-->int

    indexOf(String)-->int

    indexOf(int,fromIndex)-->int

    indexOf(String,fromIndex)-->int

    lastIndexOf(int)

    lastIndexOf(String)

    lastIndexOf(int,fromIndex)

    lastIndexOf(String,fromIndex)

    B:判断类

    contains()-->boolean,是否包含指定内容

    equals()-->boolean,判断字符串的字面值,是否相等,重写Object类

    equalsIgnoreCase()-->boolean,忽略大小写的比较

    startsWith()-->boolean,是否以指定内容开头

    endsWith()-->boolean,是否以指定内容结尾

    C:获取新的字符串

    concat()-->String,拼接,作用同+

    subString(fromIndex)--->String,截取子串

    subString(fromIndex,endIndex)-->String,包含fromIndex,不包含endIndex

    replace(oldchar,newchar)-->String,替换

    replace(CharSequence,CharSequence)-->String

    trim()->String,忽略首尾空格

    toLowerCase()-->String,转小写

    toUpperCase()-->String,转大写

    D:获取其他

    length()-->int,获取长度

    getBytes()-->byte[],获取字节数组

    toCharArray()-->char[],获取字符数组

    charAt(index)-->char,根据下标获取指定的字符

    split(切割符)-->String[],切割

    相关文章

      网友评论

        本文标题:java常用类---String类

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