Java-String字符串(String类的使用)

一、String 常见的一些方法

1 获取字符串长度length()

        String s = "今天下雨吗?";
        System.out.println(s.length());

2 获取字符串指定位置的字符值,返回值类型是Char

        String s = "今天下雨吗?";
        System.out.println(s.charAt(2));
        //下

3.返回.字符串中某字符串首次出现的索引值,如果不存在返回-1

        String s = "今天下雨吗?";
        System.out.println(s.indexOf("下雨"));
        //2

        <1>跳过两个字符去找"45"所在位置

        String s = "450123456456";
        System.out.println(s.indexOf("45",2));
        //6

        <2>字符串中最后一次出现“45”的索引值lastIndexOf()

        String s = "450123456456";
        System.out.println(s.lastIndexOf("45"));
        //9

4 比较字符串的值是否相等 equals

(1)equals()函数

        String s = "今天下雨吗?";
        String a = "今天下雨吗?";
        System.out.println(s.equals(a));
        //true
        System.out.println(s.equals(new String("今天下雨吗?")));
        //true
        System.out.println(s==new String("今天下雨吗?"));
        //false

(2) equalsIgnoreCase函数

作用:

equalsIgnoreCase函数和equals函数相同的是都是比较两个字符串的值是否相等,区别是equalsIgnoreCase函数会忽略大小写。

public boolean equalsIgnoreCase(String anotherString)比较字符串的值

 equalsIgnoreCase函数的例子

    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "hello";
        String str3 = "HELLO";
        String str4 = "HeLLo";
        String str5 = "world";

        // 使用 equalsIgnoreCase 方法进行比较
        System.out.println(str1.equalsIgnoreCase(str2)); // 输出: true
        System.out.println(str1.equalsIgnoreCase(str3)); // 输出: true
        System.out.println(str1.equalsIgnoreCase(str4)); // 输出: true
        System.out.println(str1.equalsIgnoreCase(str5)); // 输出: false
    }

5 字符串截取 substring()

substring (int beginIndex)一个参数表示从参数位置截取到最后
 substring(int beginIndex, int endIndex)两个参数表示从第一个参数位置截取到第二个参数位置,不包含第二参数的索引
        String s = "0123456";
        System.out.println(s.substring(2));
        //23456
        System.out.println(s.substring(3,5));
        //34

6 startWith() 某字符串是否以某子串开头的

        String s = "450123456456";
        System.out.println(s.startsWith("45"));
        //true

7 endWith() 某字符串是否以某子串结尾的

        String s = "450123456456";
        System.out.println(s.endsWith("5"));
        //false

8 按照某字符进行分片

        String s = "450123456456";
        for(String str:s.split("45")){
            System.out.println(str);
        }

输出结果:

0123
6

9 去开头结尾空格 (空格 \t \r \n)trim()

        String s = " 4501234 56456 \n";
        System.out.println(s.trim());

输出结果: 4501234 56456

10 把字符串转化为字符数组

        String s = " 4501234 56456 ";
        char[] cs = s.toCharArray();
        for (char c:cs){
            System.out.print(c+",");
        }

输出: ,4,5,0,1,2,3,4, ,5,6,4,5,6, , 

11 是否包含某个子串 contains("")

        String s = " 4501234 56456 ";
        System.out.println(s.contains("45"));
        //true

二、String字符串的遍历方式

        1.使用charAt方法。

        2.将字符串转化为字符数组后输出。

String s = " 4501234 56456 ";
        for(int i = 0;i<s.length();i++){
            System.out.print(s.charAt(i)+",");
        }
        System.out.println();
        for(char c:s.toCharArray()){
            System.out.print(c+",");
        }

输出内容:

 ,4,5,0,1,2,3,4, ,5,6,4,5,6, ,
 ,4,5,0,1,2,3,4, ,5,6,4,5,6, ,

三、字符串的拼接(join,format)

        1.使用数组作为参数

        String[] arr = {"爱潜水的乌贼","清泉流响","猫腻","清泉流响","远瞳","老鹰吃小鸡","耳根"};
        String rest = String.join("、",arr);
        System.out.println("起点白金网文作家有:"+"等人");

输出结果: 

起点白金网文作家有:爱潜水的乌贼、清泉流响、猫腻、清泉流响、远瞳、老鹰吃小鸡、耳根等人 

        2.使用可变参数 

String rest = String.join("、","爱潜水的乌贼","清泉流响","猫腻","清泉流响","远瞳","老鹰吃小鸡","耳根");
        System.out.println("起点白金网文作家有:"+rest+"等人");

        3.字符串格式化输出 format()

        String[] arr = {"诡秘之主","宿命之环",
                "庆余年","不科学御兽","黎明之剑","万族之劫","求魔"};
        int[] nums = {1,2,3,4,5,6,7};
        double[] dnums = {75.11,78.22,80.33,90.44,78.55,93.44,82.33};
        for(int i = 0;i<7;i++){
            System.out.println(String.format("《%s》是我看过的第%d本网文," +
                    "其中男读者占%.2f%s",arr[i],nums[i],dnums[i],"%"));
        }

《诡秘之主》是我看过的第1本网文,其中男读者占75.11%
《宿命之环》是我看过的第2本网文,其中男读者占78.22%
《庆余年》是我看过的第3本网文,其中男读者占80.33%
《不科学御兽》是我看过的第4本网文,其中男读者占90.44%
《黎明之剑》是我看过的第5本网文,其中男读者占78.55%
《万族之劫》是我看过的第6本网文,其中男读者占93.44%
《求魔》是我看过的第7本网文,其中男读者占82.33%

四、字符串和数字之间的相互转化

1.字符串和整型

        字符串转整型Integer.valueOf(s)

        String s = "-100";
        int num = Integer.valueOf(s);
        int sum = num + 101;
        System.out.println("Result is: "+sum);

        整型转字符型

两种方式1.String.valueOf(),2.拼接一个空字符串 

        int a = -100;
        //方式1
        System.out.println("-100".equals(String.valueOf(a)));
        //方式2
        System.out.println("-100".equals(a+""));

2.字符串和浮点型

        字符串转浮点Float.valueOf(s)

        float a = -100.123f;
        float num = Float.valueOf(a);
        float b = 200;
        System.out.println(num+b);
        //99.877

        浮点型转字符串

两种方式1.String.valueOf(),2.拼接一个空字符串 

3.字符串和double

        字符串转double Double.valueOf(s)

        double a = -200.123;
        double num = Double.valueOf(a);
        float b = 200;
        System.out.println(num+b);
        //-0.12299999999999045

        五、替换字符串

1.replace() 方法 

        String ip="\"诡秘之主\",\"宿命之环\",\"庆余年\"," +
                "\"不科学御兽\",\"黎明之剑\",\"万族之劫\",\"求魔\"";
        String ret=ip.replace('\"', '|');
        String ret1=ip.replace("\",", "》");
        ret1=ret1.replace("\"", "《");
        System.out.println("原字符串:"+ip);
        System.out.println("替换结果:"+ret);
        System.out.println("替换结果:"+ret1);

输出结果: 

原字符串:"诡秘之主","宿命之环","庆余年","不科学御兽","黎明之剑","万族之劫","求魔"
替换结果:|诡秘之主|,|宿命之环|,|庆余年|,|不科学御兽|,|黎明之剑|,|万族之劫|,|求魔|
替换结果:《诡秘之主》《宿命之环》《庆余年》《不科学御兽》《黎明之剑》《万族之劫》《求魔《

2.replaceAll()方法使用正则表达式进行匹配

String s= "$AaBbCcDd,.$";
        //replace()方法将“,” “.”替换成“#”
        String ret=s.replace(",", "#").replace(".", "#");

        //replaceAll()方法使用正则表达式进行匹配
        //[\\,\\.\\$]匹配一个字符内容
        //[\\,\\.\\$]+匹配多个字符内容
        String ret1=s.replaceAll("[\\,\\.\\$]+", "#");
        //[A-Z]+ 匹配多个大写字母
        String ret2=s.replaceAll("[A-Z]+", "#");


        //“\\."代表1个普通字符串内容,仅匹配"."
        String ret3 = s.replaceAll("\\.","#");

        // "."代表1个正则表达式,匹配任意字符
        String ret4 = s.replaceAll(".","#");
        System.out.println(s);
        System.out.println(ret);
        System.out.println(ret1);
        System.out.println(ret2);
        System.out.println(ret3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值