java中String类常用的方法


String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

字符串的特点:

1.字符串的内容永不可变。
2.正是因为字符串不可改变,所以字符串是可以共享使用的。
3. 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。

创建字符串的常见方式

1.直接创建String s = “Hello”,等式右边直接用双引号
2.String s = new String();创建一个空白字符串,不含有任何内容
3.String s = new String(char[] array);根据字符数组的内容,来创建对应的字符串
4.String s = new String(byte[] array);根据字节数组的内容,来创建对应的字符串,可指定字节集解码,不指定使用默认字符集解码。

字符串比较

对于基本类型来说,==是进行数值的比较,对于引用类型来说==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法:
1.public boolean equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false。
注意事项:
(1)任何对象都能用Object进行接收。
(2)equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。
(3)如果比较双方一个常量一个变量,推荐把常量字符串写在前面。
推荐:"abc".equals(str) 不推荐:str.equals("abc"),若str为空,则会报空指针异常

System.out.println("abc".equals(s));//推荐
System.out.println(s.equals("abc"));//不推荐,空指针异常NullPointerException

在这里插入图片描述
2.public boolean equalsIgnoreCase(String str):忽略大小写,进行内容比较。

String str1 = "Java";
String str2 = "java";
System.out.println(str1.equals(str2));
System.out.println(str1.equalsIgnoreCase(str2));//忽略大小写的比较

第一个输出false,第二个输出true

String中与获取相关的方法

1.public int length():获取字符串当中含有的字符个数,拿到字符串长度。
2.public String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。
3.public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始。)
4.public int indexOf(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值。
例子:

String s1 = "Hello";
String s2 = "World!";
System.out.println(s1.length());
System.out.println(s1.concat(s2));//拼接字符串
System.out.println(s1.charAt(4));//获取指定索引位置的字符,从0开始
System.out.println(s1.indexOf("llo"));//查找参数字符串在字符串中首次出现的索引位置,没有返回-1

在这里插入图片描述

字符串截取的方法

public String substring(int index):截取从参数位置一直到字符串末尾,返回新字符串。
public String substring(int begin, int end):截取从begin开始,一直到end结束,中间的字符串,包含左边不包含右边。

String s1 = "HelloWorld!";
System.out.println(s1.substring(5));
System.out.println(s1.substring(1, 4));

在这里插入图片描述

String当中与转换相关的方法

public char[] toCharArray():将当前字符串拆分成为字符数组作为返回值。
public byte[] getBytes():获得当前字符串底层的字节数组。
public String replace(CharSequence oldString, CharSequence newString):
将原字符串中出现的oldString替换为newString,然后返回替换完毕的字符串。
注:CharSequence是一个描述字符串结构的接口,在这个接口里面一般发现有三种常用的子类:String、StringBuffer、StringBuilder

String str1 = "hello";
//字符串拆分为字符数组
char[] c = str1.toCharArray()
System.out.println(c);
//字符串拆分为底层的字节数组
byte[] b = str1.getBytes();
System.out.println(b.length);
for(int i=0;i<b.length;i++){
    System.out.println(b[i]);
}
//字符串的内容替换
String s = "oh shit!";
String s1 = s.replace("shit","****!");
System.out.println(s1);

在这里插入图片描述

分割字符串的方法

public String[] split(String regex):按照参数,将字符串切分成为若干部分,返回一个字符串数组
注意:如果按照英文句点“.”进行切分,必须写"\.";若分割标志在索引0处,则会分割为两个字符串,其中有一个空字符串

String s1 = "aaa,bbb,ccc";
String[] arrs1 = s1.split(",");
for(int i=0;i<arrs1.length;i++){
    System.out.println(i+":"+arrs1[i]);
}
String s2 = "a,bbb,ccc";//若切割的标志在第一个索引处,则切割成两个字
String[] arrs2 = s2.split("a");
for(int i=0;i<arrs2.length;i++){
    System.out.println(i+":"+arrs2[i]);
}
String s3 = "aaa.bbb.ccc";
String[] arrs3 = s3.split("\\.");
for(int i=0;i<arrs3.length;i++){
    System.out.println((i+":"+arrs3[i]));
}

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值