Java String类整理

String类概述

本编博客记录了String类的常用方法,一方面可以加强自己对String类中方法的记忆,另一方面可以整理成笔记的形式,方便以后查找。
String类表示字符串,Java所有的字符串文字都实现为此类的实例。
注意的点:字符串是不变的; 它们的值在创建后无法更改。 因为String对象是不可变的,所以可以共享它们。String类的修饰符为final,所以可以进行共享。可以用以下代码来验证。

public class Demo {
    public static void main(String[] args){
    String s1 = "123";
    String s2 = "123";
    String s3 = new String("123");
    System.out.println(s1 == s2);
    System.out.println(s1 == s3);
    }
}
------------运行结果------------
true
false

这个程序的第一个运行结果为true,说明s1与s2的内存地址相同,JVM只开辟了一份内存空间去存储"123"。而s3是new出来的一个内存去存储"123",所以他的内存地址发生了改变,所以第二个比较的结果为false。

String类的构造方法

String类的常用构造方法上面的代码已经涉及到了,分别是

 String s1 = "123";                
 String s3 = new String("123");

还有一种构造方法是String​(String original)
初始化新创建的String对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。代码为:

String s3 = new String(s1);

其他的构造方法可以参考API,不太常用。

String类的常用方法

1) length():获取字符串的长度

String s1 = "123abc456";
System.out.println(s1.length());
------------运行结果------------
9

2)substring(int beginIndex):从beginIndex开始截取字符串

String s1 = "123abc456";
System.out.println(s1.substring(3));
------------运行结果------------
abc456

3)substring(int beginIndex, int endIndex):截取字符串范围是[ a , b )

注意包含a,不包含b

 String s1 = "123abc456";
 System.out.println(s1.substring(3,6));
 ------------运行结果------------
 abc

4)charAt(int index):获取指定索引处的字符

String s1 = "123abc456";
System.out.println(s1.charAt(3));
 ------------运行结果------------
 a

5)indexOf(String str):返回指定子字符串第一次出现的字符串中的索引

String s1 = "123abc456";
System.out.println(s1.indexOf("bc"));
 ------------运行结果------------
 4

6)indexOf(String str,int fromIndex):从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。

String s1 = "456123abc456";
System.out.println(s1.indexOf("45",3));
 ------------运行结果------------
 9

7)replace​(char oldChar, char newChar):返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar 。

String s1 = "123abc456";
System.out.println(s1.replace("456","789"));
 ------------运行结果------------
 123abc789

8)equals​(Object anObject):将此字符串与指定的对象进行比较

String s1 = "123";
String s2 = "1234";
System.out.println(s1.equals(s2));
 ------------运行结果------------
 false

9)equalsIgnoreCase​(String anotherString):将此 String与另一个 String比较,忽略了大小写

String s1 = "aBc";
String s2 = "Abc";
System.out.println(s1.equalsIgnoreCase(s2));
 ------------运行结果------------
 true

10)toCharArray():将此字符串转换为新的字符数组

String s1 = "abc123";
char arr[] = s1.toCharArray();
for(int i = 0;i<arr.length;i++){
	System.out.print(arr[i]+",");
}
 ------------运行结果------------
 a,b,c,1,2,3,

12)toLowerCase():使用默认语言环境的规则将此 String所有字符转换为小写。

与之相对应的还有 toUpperCase():转化为大写字母

String s1 = "ABCDEF";
System.out.println(s1.toLowerCase());
 ------------运行结果------------
 abcdef

13)trim():返回一个字符串,其值为此字符串,删除了所有前导和尾随空格

String s1 = "  abcd  12 34 ";
System.out.println(s1.trim());
System.out.println(s1);
------------运行结果------------
  abcd  12 34
    abcd  12 34 

14)contains​(CharSequence s ):当且仅当此字符串包含指定的char值序列时,才返回true

CharSequence是一个接口,实现了这个接口的类有: CharBuffer、String、StringBuffer、StringBuilder这个四个类。

String s1 = "abcd123456";
String s2 = "d123";
String s3 = "xyz";
System.out.println(s1.contains(s2));
System.out.println(s1.contains(s3));
------------运行结果------------
true
false

15)concat(String str):将指定的字符串连接到此字符串的末尾

String s1 = "abcd123456";
String s2 = "xyz";
System.out.println(s1.concat(s2));
------------运行结果------------
abcd123456xyz
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值