Java的String类方法详解

1. int length() 返回字符串的长度

    String s1 = "Hello World";
    System.out.println(s1.length());

输出:11

2. char charAt(int index) 返回某索引处的字符

    String s1 = "Hello World";
    System.out.println(s1.charAt(0));

输出:H

3. boolean isEmpty() 判断是否是空字符串

    String s1 = "Hello World";
    String s2 = "";
    System.out.println(s1.isEmpty());
    System.out.println(s2.isEmpty());

输出:
false
true

4. String toLowerCase() 和 String toUpperCase() 将 String 中的所有字符转换大小写

    String s1 = "Hello World";
    String s2 = s1.toLowerCase(Locale.ROOT);
    System.out.println(s2);
    String s3 = s2.toUpperCase(Locale.ROOT);
    System.out.println(s3);

输出:
hello world
HELLO WORLD

5. String trim() 返回字符串的副本 忽略前导空白和尾部 空白

    String s3 = "   Hello World   ";
    String s4 = s3.trim();
    System.out.println("|"+s3+"|");
    System.out.println("|"+s4+"|");

输出:
|  Hello World  |
|Hello World|

6. boolean equals(Object obj) 比较连个字符串的内容是否相同

        String s1 = "abc";
        String s2 = "abe";
        System.out.println(s1.equals(s2));

输出:
false

boolean equalsIgnoreCase(String anotherString) 与 equals 方法类似 忽略大小写

7. String concat(String str) 将指定字符串连接到此字符串的结尾

        String s1 = "abc";
        String s2 = "abe";
        System.out.println(s1.concat(s2));

输出:
abcabe

8. int compareTo(String anotherString) 比较两个字符串的大小

将字符串装成ASCII码,再比较大小

        String s1 = "abc";
        String s2 = "abe";
        System.out.println(s1.compareTo(s2));

输出:
-2 // 大于0,则s1大;小于0,则s2大;等于0,相等

9. String substring(int beginIndex) 返回一个新的字符串,从beginIndex 开始截取到最后的一个子字符串

  • String substring(int beginIndex, int endIndex) 返回一个新字符串,从 beginIndex
    开始截取到 endIndex
        String s1 = "abcdef";
        System.out.println(s1.substring(2));
        System.out.println(s1.substring(2, 4));

输出:
cdef
cd

10. boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束

        String s1 = "abcdef";
        System.out.println(s1.endsWith("ef"));

输出:
true

11. boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始

  • boolean startsWith(String prefix, int toffset)测试此字符串从指定索引开始的子字符串是否以指定前缀开始
        String s1 = "abcdef";
        System.out.println(s1.endsWith("ab"));
        System.out.println(s1.startsWith("cd", 2));

输出:
true
true

12. boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true

        String s1 = "abcdef";
        System.out.println(s1.contains("ef"));
        System.out.println(s1.contains("ac"));

输出:
true
false

13. int indexOf()

  • int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引
  • int indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始
        String s1 = "abcdefabcdef";
        System.out.println(s1.indexOf("f"));
        System.out.println(s1.indexOf("f", 6));

5
11

  • int lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引
  • int lastIndexOf(String str, int fromIndex) 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索
        String s1 = "abcdefabcdef";
        System.out.println(s1.lastIndexOf("a"));
        System.out.println(s1.lastIndexOf("a", 4));
        System.out.println(s1.lastIndexOf("ad"));

输出:
6
0
-1

14. String replace()

  • String replace(char oldChar, char newChar) 返回 一个新的字符串 它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的
        String s1 = "abcdefabcdef";
        String s2 = s1.replace('a', 'b');
        System.out.println(s2);
        System.out.println(s1);

输出:
bbcdefbbcdef
abcdefabcdef

  • String replace(CharSequence target, CharSequence replacement) 使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串
        String s1 = "abcdefabcdef";
        String s2 = s1.replace("ab", "ba");
        System.out.println(s2);
        System.out.println(s1);

bacdefbacdef
abcdefabcdef

  • String replaceAll(String regex, String replacement) 使用 给定的replacement 替换此字符串所有匹配给定的正则表达式的子字符串
        String s1 = "abcdefabcdef";
        String s2 = s1.replaceAll("abc", "cba");
        System.out.println(s2);
        System.out.println(s1);

cbadefcbadef
abcdefabcdef

  • String replaceFirst(String regex, String replacement) 使用 给定的replacement 替换此字符串匹配给定的正则表达式的第一个子字符串
        String s1 = "abcdefabcdef";
        String s2 = s1.replaceFirst("abc", "cba");
        System.out.println(s2);
        System.out.println(s1);

cbadefabcdef
abcdefabcdef

15. boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式

        String s3 = "123";
        // \\d+:表示是否有多个数字组成
        boolean matches = s3.matches("\\d+");
        System.out.println(matches);
        String s4 = "021-3478929";
        // 是否是由021-开头组成的7-8为数组
        boolean matche = s4.matches("021-\\d{7,8}");
        System.out.println(matche);

true
true

16. String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串

        String s1 = "java|c++|python";
        // 以“|”为分隔符,将字符串切分,返回字符串数组
        String[] str = s1.split("\\|");
        for (String string : str) {
            System.out.println(string);
        }

java
c++
python

  • String[] split(String regex, int limit) 根据匹配给定的正则表达式来拆分此字符串 最多不超过 limit 个 如果超过了 剩下的全部都放到最后一个元素中
        String s1 = "java|c++|python|go|php";
        String[] str = s1.split("\\|", 3);
        for (String string : str) {
            System.out.println(string);
        }

java
c++
python|go|php

17. String与基本数据类型、包装类的转换

        // string --> 基本数据类型,包装类Integer
        String str = "123";
        int num = Integer.parseInt(str);
        System.out.println(num);
        // 基本数据类型--->String
        String str1 = String.valueOf(num);
        String str2 = num + "";
        System.out.println(str1);
        System.out.println(str2);

18. String 与 char[] 的转换

  • String —> char[]:调用toCharArray()方法
        // String 与 char[] 之间的转换
        // String ---> char[]
        String str = "abc123";
        char[] chars = str.toCharArray();
        for (char ch : chars) {
            System.out.println(ch);
        }
  • char[]—>String:调用String的char数组构造器
        // char[]--->String
        char[] chars1 = new char[]{'a', 'b', 'c', '1', '2', '3'};
        // 调用String的char数组构造器
        String str1 = new String(chars1);
        System.out.println(str1);

19. String与byte[]的转换

  • String —> byte[]:调用getBytes()
        // String ---> byte[]:调用getBytes()
        String str = "abc123";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));
        String str0 = "abc123中国";

  • byte[] —> String :调用String的byte[]造器
        // byte[] ---> String :调用String的byte[]造器
        byte[] bytes1 = new byte[]{97, 98, 99, 49, 50, 51};
        String str2= new String(bytes1);
        System.out.println(str2);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值