【126天】尚学堂高琪Java300集视频精华笔记(54-55集)

第54-55集:String类的常用方法

String类常用方法

  1. 查找:endsWith、startsWith、indexOf、lastIndexOf

  2. 比较:equals、equalsIgnoreCase、compareTo

  3. 创建并返回一个新的String对象:concat、replace、substring、toLowerCase、toUpperCase、trim

  4. 将基本类型数据转换为字符串:valueOf

  5. 其它办法:charAt、length

测试String类的equals与==的区别


package com.text054;

public class TextString {
    public static void main(String[] args){
    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;

    System.out.println(str1 == str2);//str1与str2不是同一个对象
    System.out.println(str1.equals(str2));//str1与str2类型相同,引用的数组中的元素也相同
    System.out.println(str3 == str4);//str3与str4指向堆中方法区常量池中的同一常量
    System.out.println(str3.equals(str4));//同上
    System.out.println(str5 == str1);//str1的引用(对象地址)赋值给str5后,str5与str1便指向了同一对象
    System.out.println(str6 == str3);//str3的引用(对象地址)赋值给str6后,str6与str3便指向了同一对象(常量池中的常量)
}

测试String类的equalsIgnoreCase

    package com.text054;

public class TextString {
    public static void main(String[] args){

    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;
    
    //该方法用于忽略大小写进行比较
    String str3Case = "DEFEA";
    boolean boolean3 = str3.equalsIgnoreCase(str3Case);
    System.out.println(boolean3);
    
}

测试String类的compareTo

package com.text054;

public class TextString {
    public static void main(String[] args){

    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;
    
//    //该方法用于比较两个字符之间大小的差值(unnicode编码顺序之间的差值或者字符串长度的差值)
    
//    //从第一个字符开始比较,若用于比较的字符串字符值有不相同的,甭管长度一不一样,返回不相同字符在unnicode编码表中的顺序差值。
//    String a1 = "abc";
//    String b1 = "abcd";
//    int c1 = a1.compareTo(b1);
//    System.out.println(c1);
//    
//    //从第一个字符开始比较,若用于比较的字符串字符值都相同,但长度不一样,则访问它们之间长度的差值。
//    String a2 = "abk";
//    String b2 = "abcd";
//    int c2 = a2.compareTo(b2);
//    System.out.println(c2);

测试String类的concat方法

package com.text054;

public class TextString {
    public static void main(String[] args){

    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;
    
//    //测试String类的concat方法
//    //该方法用于合并并返回一个新的字符串
//    String a3 = "abc";
//    String b3 = "a";
//    String c3 = a3.concat(b3);
//    System.out.println(c3);

测试String类的replace方法用于替换字符串中某一个值

package com.text054;

public class TextString {
    public static void main(String[] args){

    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;
    
    
//    //String类的replace方法用于替换字符串中某一个值
//    String str7 = str3.replace('e','*');// 经过str3操作后,str3的值没变,str7获得的是str3的复制!!!
//    System.out.println(str7);

测试String类的isEmpty方法

//    //测试String类的isEmpty方法
//    //isEmpty只看字符串长度是不是为0
//    //isEmpty若遇到null会报空指针异常。
//    //若要判断一个字符串是否为空,最好的办法是String==null||String.isEmpty()
    
//    String a = "";
//    if(a==null||a.isEmpty()){
//        System.out.println("\"\"");
//    }
    
    
//    String a = new String();  
//    String b = "";  
//    String c = null;  
//    if(c.isEmpty())//这里将会报错NullPointerException
//      {
//    System.out.println("null");
//    }
//    if(a.isEmpty())  
//    {  
//     System.out.println("String a = new String");  
//    }  
//    if(b.isEmpty())  
//    {  
//     System.out.println("String b = \"\"");  
//    }  
//    if(c==null)  
//    {  
//     System.out.println("String c =null");  
//    }  
//    if(null == a) {  
//        System.out.println("String a =null");  
//    }  
//    if(a=="")  
//    {  
//     System.out.println("a = ''");  
//    } 
//    
//    //1. 此时a是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已)  
//    //2. 此时b是分配了内存空间,值为空字符串,是相对的空,是一种有值(值存在为空字串)  
//    //3. 此时c是未分配内存空间,无值,是一种无值(值不存在)  

String类的indexOf(int/String)方法用于查询字符串中某一个字符第一次出现的索引值

package com.text054;

public class TextString {
    public static void main(String[] args){

    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;
    
//    //String类的indexOf(int/String)方法用于查询字符串中某一个字符第一次出现的索引值
//    //indexOf重载了很多次,形参有很多,以下测试并不全面,详见JDK中源码
//    int a = str3.indexOf(97);//十进制数97对应英文字母a,a的Unicode编码为/u0061
//    int b = str3.indexOf('e');//单引号是字符,双引号是字符串,这里倒没啥区别
//    int c = str3.indexOf("e");//同上
//    int d = str3.indexOf('g');//找不到检索的字符输出-1
//    int e = str3.indexOf("ef");
//    System.out.println(a);
//    System.out.println(b);
//    System.out.println(c);
//    System.out.println(d);
//    System.out.println(e);

String类的lastindexOf()方法用于查询字符串中某一个字符最后一次出现的索引值

package com.text054;

public class TextString {
    public static void main(String[] args){

    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;
    
    
//    //String类的lastindexOf()方法用于查询字符串中某一个字符最后一次出现的索引值
//    int f = str3.lastIndexOf('e');
//    System.out.println(f);

String类的substring方法用于裁减字符串(从当前索引值开始)


package com.text054;

public class TextString {
    public static void main(String[] args){

    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;
    

    
//    //String类的substring方法用于裁减字符串(从当前索引值开始)
//    String str8 = str3.substring(1);//从1截取对象
//    System.out.println(str8);
//    String str9 = str3.substring(-1);//从-1截取,报错。
//    System.out.println(str9);

String类的split方法用于按照指定字符分割字符串

package com.text054;

public class TextString {
    public static void main(String[] args){

    String str1 = new String("abcd");
    String str2 = new String("abcd");
    String str3 = "defea";
    //String str3 = "aaa";//不能改变字符串引用变量的引用对象
    String str4 = "def";
    String str5 = str1;
    String str6 = str3;
    

//    //String类的split方法用于按照指定字符分割字符串
//    String str10 = "aaa,bbb,ccc,ddd";
//    String[] strlist = str10.split(",");
//    for(int i = 0;i<strlist.length;i++){
//        System.out.println(strlist[i]);
//    }

测试String类的toLowerCase

//    //测试String类的toLowerCase
//    //作用是将大写转换为小写
//    String a4 = "ABCD";
//    String b4 = a4.toLowerCase();
//    System.out.println(b4);

测试String类的toUpperCase

//    //测试String类的toUpperCase
//    //作用是将小写转换为大写
//    String a5 = "abcd";
//    String b5 = a5.toUpperCase();
//    System.out.println(b5);

trim用于去除首尾空格

//    //trim用于去除首尾空格
//    String str11 = " abc ";
//    String str12 = str11.trim();
//    System.out.println(str12);

测试String类的charAt

//    //测试String类的charAt
//    //作用返回指定索引处的字符
//    String a6 = "123456789";
//    char b6 = a6.charAt(8);
//    System.out.println(b6);

测试String类的length方法

//    //测试String类的length方法
//    String a7 = "sasffasf";
//    int b7 = a7.length();
//    System.out.println(b7);

toString用于返回调用对象本身

//    //toString用于返回调用对象本身
//    String str13 = "zxc";
//    String str14 = str13.toString();//将str13引用指向的对象赋值给str14
//    System.out.println(str14);
//    System.out.println(str13==str14);

toCharArray用于将字符串转换为字符数组

//    //toCharArray用于将字符串转换为字符数组
//    String str15 = "asdf";
//    char[] str16 = str15.toCharArray();
//    System.out.println(str16);
//    for(int i = 0;i<str16.length;i++){
//        //System.out.println(str15[i]);//str15不是数组,是字符串,所以它不能这样像数组一样输出
//        System.out.println(str16[i]);//str16是字符数组。
//    
//        }

startwith用于检测字符串前缀是否相符,相符返回true,否则返回false。

//    //startwith用于检测字符串前缀是否相符,相符返回true,否则返回false。


//    String str17 = "asdfg";
//    String str18 = "as";
//    
//    //测试startsWith(String prefix);
//    boolean boolean17 = str17.startsWith("asd");
//    System.out.println(boolean17);
//    
//    //测试startsWith(String prefix,int toffset);从str1索引值为toffset的位置开始比较是否与prefix相等
//    boolean boolean18 = str17.startsWith("sdf",1);
//    System.out.println(boolean18);
//

endswith用于检测字符串后缀是否相符,相符返回true,否则返回false

//    //endswith用于检测字符串后缀是否相符,相符返回true,否则返回false。

//    //测试endswith(String suffix);
//    boolean boolean22 = str17.endsWith("fg");
//    System.out.println(boolean22);
//    //没有endswith(String suffix,int toffset);方法

测试valueOf

    
//  //测试valueOf
//    //将byte、short、int、long、float、double、char、char[]、boolean、Object转换为字符串
//    byte k1 = 1;
//    short k2 = 10;
//    int k3 = 100;
//    long k4 = 1000;
//    float k5 = (float)3.012;
//    double k6 = 3.012;
//    char k7 = 'a';
//    char[] k8 = {'a','b','c'};
//    boolean k9 = true;
//    Object k10 = new Object();
//    
//    System.out.println(k1);
//    System.out.println(k2);
//    System.out.println(k3);
//    System.out.println(k4);
//    System.out.println(k5);
//    System.out.println(k6);
//    System.out.println(k7);
//    System.out.println(k8);
//    System.out.println(k9);
//    System.out.println(k10);

字符串拼接方法


    //字符串拼接方法
    String a = "a";
    String b = a+1;
    System.out.println(b);
    
    //c可指向不同字符串对象【即可变】,但是字符串里的字符不可变【如"a"这个字符串对象中的字符a就不可变】
    String c = "a";
    c = "b";
    System.out.println(c);
    
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值