Java系统类之字符串类

字符串类 String

字符串是个常量(不可更改) 常量字符串
对字符串进行操作 都返回是一个新的字符串(原字符串不能更改)

public static void fun3() {
        String string = "www.baidu.com";
        // 包含
        boolean b1 = string.contains("baidu");
        System.out.println(b1);
        // 前缀
        boolean b2 = string.startsWith("www");
        System.out.println(b2);
        // 后缀
        boolean b3 = string.endsWith("com");
        System.out.println(b3);

    }

    public static void fun2() {
        // 包含
        String string1 = "wanglong";
        String string2 = "a";
        boolean b1 = string1.contains(string2);
        System.out.println(b1);

        // 拼接字符串
        String string3 = string1 + string2;
        System.out.println(string3);
        // 方法concat 返回的是一个新的字符串
        String newstring = string1.concat(string2);
        System.out.println(newstring);
    }
    public static void fun1() {
        // 传入索引返回对应的字符
        String string = "wanglong";
        char c = string.charAt(7);
        System.out.println(c);

        // 传入字符 返回对应的索引
        int index = string.indexOf('g');
        System.out.println(index);
        // 传入的查找索引是从当前位置开始查找
        int index2 = string.indexOf('g', 4);
        System.out.println(index2);
        // 传入字符串 查找对应的位置 wanglong
        int index3 = string.indexOf("ng");
        System.out.println(index3);


    }
    public static void main(String[] args) {
        // 测试
        fun1();
        fun2();
        fun3();
    }
    // 替换
    public static void fun1() {
        String string = "wanglong";
        String replaceString = string.replace('w', 's');
        System.out.println(replaceString);

        String string2 = string.replace("long", "song");
        System.out.println(string2);
    }
    public static void fun2() {
        String string = " wang, long, z, n, b";
        // 按逗号切割
        String[] strings = string.split("z");
        // 遍历
        for (int i = 0; i < strings.length; i++) {
            System.out.println(strings[i]);
        }
        // 增强for循环 用来快速打印 快速遍历
        // 冒号后 是你要遍历的容器
        // 冒号前 代表的是 容器中 每一个元素
        for (String string2 : strings) {
            // 遍历时 直接打印每一个元素
            System.out.println(string2);
        }
    }
    // 获取 子 字符串
    public static void fun3() {
        String string = "wanglong";
        // 从索引处 开始截取 返回的从索引处往后的字符串
        String string2 = string.substring(5);
        System.out.println(string2);
        // 截取时 留头不留尾
        String string3 = string.substring(0, 4);
        System.out.println(string3);
    }
    // 转换大小写
    public static void fun4() {
        String string = "wanglong";
        // 转大写
        String upperCase = string.toUpperCase();
        System.out.println(upperCase);

        String string2 = "DINGPENG";
        String lowerCase = string2.toLowerCase();
        System.out.println(lowerCase);
    }
    // 去空格
    public static void fun5() {
        String string = "   abc   def   ";
        String trim = string.trim();
        System.out.println(trim);
    }
    // 字符串比较
    /*
     * 字符串相等时 返回0
     * 两个字符串 长度相同时
     * 一位一位进行 ASCII码的比较
     * 长度不相等时 返回的是 长度的差值
     */
    public static void fun6() {
        String s1 = "abc";
        String s2 = "abc";
        // 进行比较
        int compareTo = s1.compareTo(s2);
        System.out.println(compareTo);

    }
    // 判断两个字符串相等(忽略大小写)
    public static void fun7() {
        String s1 = "wanglong";
        String s2 = "wangLong";
        // 忽略大小写判断是否相等
        boolean equalsIgnoreCase = s1.equalsIgnoreCase(s2);
        System.out.println(equalsIgnoreCase);

    }
    public static void fun8() {
        char[] array = {'w','a','n','g'};
        // 转字符串
        String string = new String(array);
        System.out.println(string);
        // int换字符串
        int num = 5;
        String newStr = String.valueOf(num);
        System.out.println(newStr);
        // 字符串 转 字符数组
        String string1 = "wanglong";
        char[] charArray = string1.toCharArray();
        // 遍历

        for (char c : charArray) {
            System.out.print(c);
        }
        // 判断字符串是否为空
        String string3 = "wanglong";
        boolean b = string3.isEmpty();
        System.out.println(b);
        // 字符串长度
        System.out.println(string3.length());
    }


举例:
      计算字符串中 "wwwdasdwwwaswwwghwwwkl"  
      www出现的次数
    public static void fun3() {

        String string = "wwwdasdwwwaswwwghwwwkl";
        String[] split = string.split("www");
        System.out.println(split.length - 1);

不用系统类的写法:

        // 记录 出现的次数
        int count = 0;
        // 截取字符串角标
        int index = 0;
        // 声明要比对字符串
        String key = "www";
        // 循环判断 key 是否存在于 原字符串中
        // 每存在一次 就进行字符串 截取 计数
        while (string.contains(key)) {
            // 寻找到的是 字符串的起始坐标
            index = string.indexOf(key);
            // 截取字符串
            string = string.substring(index + key.length());
            // 计数器++
            count++;
            System.out.println(string);
        }
        System.out.println(count);
    }
举例:
      将字符串 "   abc def   "中的前后空格去掉
      转化成 "abc def" 用代码实现(不使用系统方法)
     1. 声明字符串
     2. 可以将字符串转成字符数组
     3. 声明开始坐标与结束坐标
     4. 从开始坐标寻找到第一个不是空格的字符的索引
     5. 从结尾坐标寻找到第一个不是空格的字符的索引
     6. 根据开始和结束的索引 截取字符串 注意 : 留头尾问题
    public static void fun2() {
        String string = "   abc def   ";
        char[] charArray = string.toCharArray();
        // 声明开始角标 / 结束坐标
        int start = 0;
        int end = string.length() - 1;
        // 寻找从开始 第一个不是空格的索引
        while (string.charAt(start) == ' ' && start < end) {
            start++;
        }
        // 寻找结束坐标 
        while (charArray[end] == ' ' && start < end) {
            end--;
        }
        // 截取新字符串 +1 是留头不留尾
        String substring = string.substring(start, end + 1);
        System.out.println(substring);
    }

举例:
      将字符串 "   abc def  " 反转
    public static void fun1() {
        String string = " abc  def ";
        char[] charArray = string.toCharArray();
        for (int i = 0; i < charArray.length / 2; i++) {
            char temp = charArray[i];
            charArray[i] = charArray[charArray.length - i -1];
            charArray[charArray.length - i -1] = temp;
        }

        // 数组转字符串
        String newStr = new String(charArray);
        System.out.println(newStr);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值