Java中String类的简单介绍和常用方法

156 阅读3分钟

1.String类的作用、构成

String类用来代表字符串,它用来,操作字符串,比如比较,查找,拼接,截取等等。String类存在于java.lang包下,查看源码可以看到String是一个publilc类,它被final修饰,所以它不能被继承,它本身也没有继承任何的类或抽象类,但它实现了三个接口 Serializable, Comparable, CharSequence,这一点需要注意。

image.png

2.如何构建一个String类

通过字符串常量的方式

String string = "Java 是世界上最好的语言!";

通过无参构造方法构建一个String类

String string = new String();

通过带String参数的方式构建一个String类

String string = new String(""java 是世界上最好的语言!);

通过带字节数组参数的方式构建一个String类

String str = new String(byte[]);

通过带字符数组参数的方式构建一个String类

String str = new String(char[]);

String类的不可变特性

String类中字符存储使用字符数组的方式,此字符数组被private和final修饰,所以不可变体现在长度和内容上,长度上被final修饰,自己本身是数组,所以长度不可变,内容上它又被private修饰,外部不可访问。

3.常用的方法

boolean = equals(Object obj);

继承自Object类,经过重写后,比较两个字符串是否相等,相等返回true,否则返回false。

int = hashCode();

继承自自Object,经过重写后,将当前字符串的每一个char元素拆开,乘以31求和。

int = compareTo(String string);

实现自Comparable接口,实现了comparaTo方法,按照字典(Unicode编码)索引的顺序比较

String = toString();

继承Object类,经过重写后,不在输出类名@hashCode,而是输入这个String对象的字符内容。

char = chatAt(int index);

返回字符串指定位置上的字符。

int = codePointAt(int index);

返回字符串指定位置上字符的code码

String = cancat(String string);

将给定的字符串拼接在当前String对象的后面,性能不好。

boolean = contains(CharSequence s);

判断给定的字符串是否在此对象中是否存在。

startsWith(String prefix)和endsWith(String suffix);

判断此字符串是否已xx开头/结尾。

byte[] = getBytes(String string);

将当前的字符串转化成byte数组

char[] = toCharArray();

将当前的字符串转化成char数组

int index = indexOf(int/String str [,int fromIndex] );

包含四个重写方法,找寻给定的元素在字符串中第一次出现的索引位置 若字符串不存在则返回-1

int index = lastIndexOf(int/String str , [int fromIndex]);

找寻给定的元素在字符串中最后一次出现的索引位置 若不存在则返回-1

boolean = isEmpty();

判断当前字符串是否为空字符串 (length是否为0)

替换字符方法

  • String string = replace(CharSequence string);
  • replaceAll(CharSequence string);
  • replaceFirst(CharSequence string);

String[] = split(String regex [,int limit限度界限]);

按照给定的表达式将原来的字符串拆分开的

String = substring(int beginIndex [,int endIndex]);

将当前的字符串截取一部分从beginIndex开始至endIndex结束 [beginIndex,endIndex),若endIndex不写 则默认到字符串最后。

将全部字符串转换成大写/小写

  • String = toUpperCase(); // 转化大写
  • String = toLowerCase(); // 转化小写

String = trim();

去掉字符串前后多余的空格

boolean = matches(String regex);

regular有规律的expression表达式,正则表达式。