【第九章 String常用方法(charAt,toLowerCase, toUpperCase,trim,concat,compareTo,substring)】

第九章 String常用方法(charAt,toLowerCase, toUpperCase,trim,concat,compareTo,substring)

1.String类、String的实例化方式、String拼接操作
(1)①String声明为final的,不可被继承;
②String实现了Serializable接口:表示字符串是支持序列化的;实现了Comparable接口,表示String可以比较大小。
③String内部定义了final char[] value用于存储字符串数据;
④String:代表不可变的字符序列,简称:不可变性。
体现1: 当对字符串重新赋值时,需要重新指定内存区域赋值,不能使用原有的value进行赋值;
体现2:当对现有的字符串进行连接操作时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值;
体现3:当调用String的replace()方法时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值;
⑤通过字面量的方式(区别与new方式)给一个字符串赋值,此时的字符串值声明在字符串常量池中;
⑥字符串常量池是不会存储相同内容的字符串的。
(2)String的实例化方式
①通过字面量的方式:此时字符串s1和s2的数据声明在方法区中的字符串常量池中;
② 通过new+构造器的方式:此时字符串s1和s2保存的地址值,是数据在堆空间中开辟空间以后对应的地址值。
③String s=new String(“abc”);创建对象,在内存中创建了两个对象,一个是堆空间中new结构,另一个是char[]对应的常量池中的数据:“abc”。

		Person p1=new Person("aa",12);
        Person p2=new Person("aa",12);
        System.out.println(p1.name.equals(p2.name));//true
        System.out.println(p1.name==p2.name);//true

(3)String拼接操作
①常量与常量的拼接结果在常量池中,且常量池中不会存在相同内容的常量;
②只要其中有一个是变量,结果就在堆中;
③如果拼接的结果调用intern()方法,返回值就在常量池中。
2.String常用方法1

  • int length():返回字符串的长度: return value.length
  • char charAt(int index): 返回某索引处的字符return value[index]
  • boolean isEmpty():判断是否是空字符串:return value.length == 0
  • String toLowerCase():使用默认语言环境,将 String 中的所有字符转换为小写
  • String toUpperCase():使用默认语言环境,将 String 中的所有字符转换为大写
  • String trim():返回字符串的副本,忽略前导空白和尾部空白
  • boolean equals(Object obj):比较字符串的内容是否相同
  • boolean equalsIgnoreCase(String anotherString):与equals方法类似,忽略大小写
  • String concat(String str):将指定字符串连接到此字符串的结尾。 等价于用“+”
  • int compareTo(String anotherString):比较两个字符串的大小
  • String substring(int beginIndex):返回一个新的字符串,它是此字符串的从beginIndex开始截取到最后的一个子字符串。
  • String substring(int beginIndex, int endIndex) :返回一个新字符串,它是此字符串从beginIndex开始截取到endIndex(不包含)的一个子字符串。
public void test(){
        String s1="helloworld";
        System.out.println(s1.length());//10
        System.out.println(s1.charAt(0));//h
        System.out.println(s1.isEmpty());//false
        System.out.println(s1.toLowerCase());//helloworld
        System.out.println(s1.toUpperCase());//HELLOWORLD
        String s3="  he  llo world  ";
        String s4=s3.trim();
        System.out.println("--"+s3+"--");//--  he  llo world  --
        System.out.println("--"+s4+"--");//--he  llo world--
        String s5="helloworld";
        String s6="HelloWorld";
        System.out.println(s5.equals(s6));//false
        System.out.println(s5.equalsIgnoreCase(s6));//true
        String s7="abc";
        String s8=s7.concat("def");
        System.out.println(s8);//abcdef
        String str1="abc";
        String str2= "abe";
        System.out.println(str1.compareTo(str2));//-2 负数表示str1小,正数表示str1大,0表示两个一样大
        String str3="helloschool";
        String str4=str3.substring(2);
        System.out.println(str4);//lloschool
        String str5=str3.substring(1,5);
        System.out.println(str5);//ello
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值