String类 字符串方法的使用 和 案例演示

package com.common.string;

import java.util.Arrays;

/**
 * @ClassName: Demo1
 * @Author: 南冥有猫不须铭
 * @Date: 2021/6/22-18:34
 * @Description: String类  字符串方法的使用
 */
public class Demo1 {
    public static void main(String[] args) {
        String name = "hello";//"hello"常量存储在字符串池中(字符串常量池,jdk1.6之前存放在方法区中,jdk1.7之后转移到堆中)
        name = "zhangsan";//"zhangsan"赋值给name变量,给字符串赋值时,并没有修改数据,而是重新开辟一个空间(原来的"hello"变成垃圾,被回收)
        String name2 = "zhangsan";//name和name2指向字符串池中的同一个对象"zhangsan",从而实现了字符串常量的共享

        //演示字符串的另一种创建方式,new String();
        String str = new String("java");//这种方式会在堆和字符串常量池中各创建一个对象("java"),会浪费空间  str-->对象1-->"java"
        String str2 = new String("java");//在堆中重新创建一个对象,指向上面字符串常量池中的"java"  str2-->对象2-->"java"
        System.out.println(str == str2);//false     str和str2指向的堆中的对象的地址不同
        System.out.println(str.equals(str2));//true     两个字符串比较要用 equals(),equals()比较的不是地址,而是数据

        System.out.println("----------------字符串方法的使用1-----------------");
        //字符串方法的使用
        //1、length();返回字符串的长度
        //2、charAt(int index);返回某个位置的字符
        //3、contains(String str);判断是否包含某个字符串

        String content = "java是世界上最好的java编程语言,java真香";
        System.out.println(content.length());//15    字符串的长度为15,每一个字符都算一个长度(空格也算)
        System.out.println(content.charAt(content.length()-1));//言   返回字符串最后的位置上的字符,减1是因为字符串中字符计数是从0开始的
        System.out.println(content.contains("java"));//true
        System.out.println(content.contains("php"));//false

        System.out.println("----------------字符串方法的使用2-----------------");
        //字符串方法的使用
        //4、toCharArray();返回字符串对应的数组
        //5、indexOf();返回子字符串首次出现的位置
        //6、lastIndexOf();返回子字符串最后一次出现的位置

        System.out.println(Arrays.toString(content.toCharArray()));//[j, a, v, a, 是, 世, 界, 上, 最, 好, 的, j, a, v, a, 编, 程, 语, 言, ,, j, a, v, a, 真, 香]  这里在打印时又将数组变成字符串,一个字符一个字符地打印
        System.out.println(content.indexOf("java"));//0  "java"首次出现的位置(首字母)下标是0
        System.out.println(content.indexOf("java",4));//11   从下标4开始往后找出现的第一个"java"的位置的下标是11
        System.out.println(content.lastIndexOf("java"));//20   "java"最后一次出现时的位置(首字母)下标为20

        System.out.println("----------------字符串方法的使用3-----------------");
        //字符串方法的使用
        //7、trim();去掉字符串前后的空格
        //8、toUpperCase();把小写转成大写    toLowerCase();把大写转成小写
        //9、endsWith(str);判断是否以str结尾    startsWith(str);判断是否以str开头

        String content2 = "   hello world   ";
        System.out.println(content2.trim());//hello world       去掉了字符串前后的空格,中间的空格需要通过替换去除
        System.out.println(content2.toUpperCase());//   HELLO WORLD   小写转成大写
        System.out.println(content2.toLowerCase());//   hello world   大写转成小写
        String filename = "hello.java";
        System.out.println(filename.endsWith(".java"));//true   判断是否以".java"结尾
        System.out.println(filename.startsWith("hello"));//true    判断是否以"hello"开头

        System.out.println("----------------字符串方法的使用4-----------------");
        //字符串方法的使用
        //10、replace(char old,char new);用新的字符或字符串替换旧的字符或字符串
        //11、split();对字符串进行拆分

        System.out.println(content.replace("java","php"));//php是世界上最好的php编程语言,php真香
        String say = "java is the best  programing language,java xiang";
        String[] arr = say.split("[ ,]+");// " ":表示用空格进行拆分;"[ ,]"表示用空格或者逗号进行拆分;"[ ,]+"表示隔着多个空格或者逗号时也能拆分
        System.out.println(arr.length);//输出字符串数组长度
        for (String string : arr) {    //遍历(输出每一个字符串数组)
            System.out.println(string);
        }

        System.out.println("----------------补充-----------------");
        //补充两个方法equals()、compareTo();比较大小
        String s1 = "hello";
        String s2 = "HELLO";
        System.out.println(s1.equals(s2));//false   比较值是否相等
        System.out.println(s1.equalsIgnoreCase(s2));//true  忽略大小写的比较

        String s3 = "nabc";//a:97    b:98
        String s4 = "nxyza";//x:120    y:121
        System.out.println(s3.compareTo(s4));//-23  97-120=-23 这里比字符串的大小是比字符的先后位置大小,如果第一个字符相同,就比较第二个字符,以此类推

        String s5 = "abc";//长度:3
        String s6 = "abcxyz";//长度:6
        System.out.println(s5.compareTo(s6));//-3  3-6=-3  这里两个字符串前半部分相同,而后面一个有,一个没有,这里直接比较字符串长度

    }
}

package com.common.string;

/**
 * @ClassName: Demo2
 * @Author: 南冥有猫不须铭
 * @Date: 2021/6/27-18:49
 * @Description: 案例演示
 */
/*
需求:
已知String str = "this is a test";
1.将str中的单词单独获取出来
2.将str中的test替换为practice
3.在test前面插入一个easy
4.将每个单词的首字母改为大写
 */
public class Demo2 {
    public static void main(String[] args) {
        String str = "this is a test";
        //1.将str中的单词单独获取出来
        System.out.println("--------1.将str中的单词单独获取出来--------");
        String[] arr = str.split(" ");
        for (String s : arr) {
            System.out.println(s);
        }
        //2.将str中的test替换为practice
        System.out.println("--------2.将str中的test替换为practice--------");
        String str2 = str.replace("test","practice");
        System.out.println(str2);
        //3.在test前面插入一个easy
        System.out.println("--------3.在test前面插入一个easy--------");
        String str3 = str.replace("test","easy test");
        System.out.println(str3);
        //4.将每个单词的首字母改为大写
        System.out.println("--------4.将每个单词的首字母改为大写--------");
        for (int i=0;i<arr.length;i++){
            char first = arr[i].charAt(0);
            //把第一个字符转成大写
            char upperfirst = Character.toUpperCase(first);//char的包装类Character下的方法

            String news = upperfirst+arr[i].substring(1);//从字符串数组中每个字符串的第二个字符开始截取,然后跟前面的大写首字符组合成新的字符串
            System.out.println(news);
        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值