java基础知识(String类的常用方法)

String类的常用方法

获取方法

  1. charAt(int index):返回指定索引处的char值。
  2. indexOf(String str) :返回指指定字符第一次出现在字符串中的索引,返回int类型的值。
  3. indexOf(String str,int fromIndex) :返回指定字符第一次出现在字符串中的索引,从指定索引处开始查找。返回int类型的值。
  4. lastIndexOf(String str):反向查找,返回指定字符第一次出现在字符串中的索引,返回intl类型。
  5. lastIndexOf(String str,int fromIndex) :反向查找,返回指定字符第一次出现在字符串中的索引,从指定索引处开始查找。返回int类型的值。
  6. substring(int index):从指定索引处截取一段字符串,返回该字符串。
    • substring(int beginIndex,int endIndex):截取指定开头和指定结束索引的字符串。

转换方法

  1. valueOf(多种类型的数据):静态方法,可以直接类名调方法。功能:将多种类型的数据转化成字符串,返回的是一个字符串对象
  2. trim():功能:去除字符串两端的空格,返回String类型。
  3. replace(char oldchar,char newchar):将给定的旧字符串替换成给定的新字符串。
  4. toUpperCase():将字符串里面的所有字符转换成大写字符,返回String类型。
  5. toLowerCase();将字符串里面的所有字符转换成小写字符,返回String类型。
  6. concat():将指定字符串拼接到字符串的尾部。
  7. getBytes():将字符串转成字节数组,返回一个字节数组。
  8. toCharArry():将字符串转换成新的字符数组。返回一个字符数组。

判断方法

  1. startWith(String str):判断是测试的字符串是否以指定的前缀开头。
    • **startWith(String str,int index)**判断指定索引处是否以指定的前缀开头。
  2. endsWith(String str):判断测试的字符串是否已指定的后缀结束。
  3. isEmpty();判断一个字符串是否是空。(“” 这个是空字符串,“ ”里面有空格不是空字符串,空格也是字符串)。
  4. contains():判断字符串中是否含有子字符串。

比较方法

  1. compareTo(String anotherString ):比较两个字符出串字面内容是否相同。返回的是一个int类的值(如果返回值是0,那么两个字符串内容相同)。
  2. compareToIgonreCase(String str):也是比较两个字符串,不区别大小写。返回的是一个int类的值(如果返回值是0,那么两个字符串内容相同)
  3. equals(String str):String类把equals重写了。比较的是两个字符串的字面内容是否相同,返回值是布尔类型的。
  4. equalsIgnoreCase(String anotherString):和equals相同。只是忽略了大小写。-
    • equals和compareTo都是比较两字符串字面内容是否相同,但是返回值类型不相同。在使用时可根据需要的返回值来决定用哪个方法。

综合示例:

public class Test {
    public static void main(String[] args) {
        String user = "asASDdfghHJj";
        String user2 = "qweGHRgTFtyu";
//      1.  使用charAt遍历字符串。
        for (int i = 0; i < user.length(); i++) {
            System.out.println(user.charAt(i));
        }
        
//        2.字符串拼接、获取指定索引处的字符串,并改变字母值大小。
        System.out.println((user.substring(0, 1).toUpperCase()).concat(user.substring(1).toLowerCase()));

//        3.比较两个字符出啊是否相等。
        String user3 = "asdfG";
        String user4 = "asdfg";
        System.out.println(user3.equals(user4));
        System.out.println(user3.equalsIgnoreCase(user4));
        System.out.println(user3.compareTo(user4));
        System.out.println(user3.compareToIgnoreCase(user4));
//        4.将字符串转换为字符数组
        char[] ch = user3.toCharArray();
        System.out.println(ch);
//        按指定格式打印字符数组
        for (int i = 0; i < ch.length; i++) {
            if (i == 0) {
                System.out.print("{" + ch[i] + ",");
            } else if (i == (ch.length - 1)) {
                System.out.println(ch[i] + "}");
            } else {
                System.out.print(ch[i] + ",");
            }
        }
//       5. 将字符数组转换成字符串,并打印(利用构造方法将字符数组转化成字符串)
        String s = new String(ch);
        System.out.println(s);
        
        // 判断一个字符是否出现两次
//        判断 l 是否出现一次
        String user5="afhakkllhsueb";
        int i = user5.indexOf("l");
        int i1 = user5.lastIndexOf("l");
        if (i==i1){
            System.out.println("l只出现了一次");
        }else{
            System.out.println("l出现了一次以上");
        }
        System.out.println("=======");
        
//        判断字符串是否已特殊字符开始,或者结束,替换特殊字符。
        String name="隔壁老王爱抽烟";
        boolean s2 = name.startsWith("隔壁");
        System.out.println(s2);
        boolean s3= name.endsWith("抽烟");
        System.out.println(s3);
        System.out.println(name.replace("抽烟", "戒掉"));
    }
}

示例二
public class Test2 {
    public static void main(String[] args) {
//        判断是否是空串
        String use = "";
        System.out.println(use.isEmpty());
        
//        去掉字符串两端的空格
        String use1 = "   sui  ujn   kl  ";  
        System.out.println("===" + use1.trim() + "===");
        
//        去掉字符串左端的空格
        System.out.println("==" + use1.concat("a").trim().substring(0, ((use1.concat("a").trim()).length() - 1)) + "===");
        System.out.println("+++++++++++++");
        
//        去掉字符串右边空格
        String s = "a".concat(use1).trim();
        String s6=s.substring(1);
        System.out.println("====" + s.substring(1) + "===");
        System.out.println("++++++++++++++++++++++++++");
        System.out.println();
        
//       去掉中间空格
        int length = use1.length();
       String s4=use1.concat("a").trim();
        String s5 = s4.substring(0, (s4.length() - 1));
        int l=length-s5.length();
        int r=length-s6.length();
        String use3=use1.trim();
        String replace = use3.replace(" ", "");
        for (int i = 0; i < l; i++) {
           replace= " ".concat(replace);
        }
        for (int j = 0; j < r; j++) {
            replace=replace.concat(" ");
        }
        System.out.println("==="+replace+"===");
    }
}
//将字节数组/字符数组转成字符串。
public class Test4 {
    public static void main(String[] args) {
        byte [] bytes={'a','b','c','d'};
        String s = new String(bytes);
        System.out.println(s);
        String s2 = new String(bytes, 1, 3);
        System.out.println(s2);
        char [] arr={'a','b','c','d'};
        String s1 = new String(arr);
        System.out.println(s1);
    }
    public class Test3 {
    public static void main(String[] args) {
//        将字符串数组转换成字符串。
        String num = "";
        String []arr={"A","S","D","F"};
        for (int i = 0; i < arr.length; i++) {
            num=num.concat(arr[i]);
        }
        System.out.println(num);
        System.out.println("============");
        
//        将字符串转成字节数组
        String s1="abcd";
        byte[] bytes = s1.getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]);
        }
 //        判断字符串中是否含有的子字符串
        String s3="我是中国人";
        boolean f = s3.contains("中国");
        System.out.println(f);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一门非常流行的编程语言,它在现代软件开发中扮演着至关重要的角色。在Java中,StringStringBuilder以及StringBuffer是三个常用字符串型。 首先,StringJava中最常用字符串型之一。它是一个不可变字符串,一旦创建就无法修改。在Java中,String是用双引号引起来的字符序列,例如:"Hello World"。由于String对象不可修改,因此它不适合使用在需要频繁修改字符串的场景下。 其次,StringBuilder和StringBuffer是Java中另外两种可变字符串型。与String不同,StringBuilder和StringBuffer可以修改已经存在的字符串StringBuilder是线程不安全的,适合在单线程应用中使用。而StringBuffer是线程安全的,适合在多线程应用中使用。 虽然StringBuilder和StringBuffer都可以修改字符串,它们在内部实现上有所不同。StringBuilder在修改字符串时直接修改原有的字符串,而StringBuffer在修改字符串时会先复制一份原有的字符串,再进行修改。由于StringBuffer的实现更加安全,所以它会比StringBuilder慢一些。 在使用StringBuilder和StringBuffer时,程序员需要注意的一点是尽量避免创建多余的对象。在追加字符串时,应该直接在已有的StringBuilder或StringBuffer对象上进行操作,而不是每次都创建一个新对象。这样可以极大地提高程序的性能。 总之,StringStringBuilder和StringBuffer是Java常用的三种字符串型。程序员应该根据自己的需要选择合适的型。如果字符串需要频繁修改,并且在多线程环境下进行操作,那么应该使用StringBuffer。如果字符串在单线程环境下进行操作,并且需要频繁修改,那么应该使用StringBuilder。如果字符串不需要修改,那么应该使用String

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值