美文网首页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