String的一些常见函数总结复习

package com.ethjava;

public class Stringlianxi {
    public static void main(String[] args) {

        String str = "You are the great one!";
        //substring(int beginIndex) 形式
        //此方式用于提取从索引位置开始至结尾处的字符串部分。
        //调用时:括号中是需要提取字符串的开始位置,方法的返回值是提取的字符串。
        System.out.println(str.substring(4));//are the great one!
        System.out.println(str.substring(3));// are the great one! 第一位是空格

        //ubstring(int beginIndex,int endIndex) 形式
        //此方法中的 beginIndex 表示截取的起始索引,截取的字符串中包括起始索引对应的字符;
        // endIndex 表示结束索引,截取的字符串中不包括结束索引对应的字符
        System.out.println(str.substring(4, 6));//ar

        //去掉字符串的首尾空格
        String str2 = " yxf are great! ";//前后有两个空格
        String str3 = str2.trim();
        System.out.println(str3);//yxf are great!
        System.out.println(str2.length());//16
        System.out.println(str3.length());//14
        //字符串名.length();获取字符串的长度

        //连接字符串
        //用+号,使用“+”运算符连接字符串和 int 型(或 double 型)数据时,“+”将 int(或 double)型数据自动转换成 String 类型。
        String str4 = "Welcome to" + "Beijing" + 2019 + "欢迎来到" + "北京。";
        System.out.println(str4);
        //Welcome toBeijing2019欢迎来到北京。
        //使用concat()方法
        //字符串 1.concat(字符串 2);
        // 字符串 2 被连接到字符串 1 后面,形成新的字符串。
        String str5 = "某女生";
        System.out.println(str5.concat(",你好啊"));
        //某女生,你好啊

        //转换大小写
        String str6 = "abcdef 我 MNJKL";
        System.out.println(str6.toLowerCase());    // 输出:abcdef 我 mnjkl
        System.out.println(str6.toUpperCase());    // 输出:ABCDEF 我 MNJKL
        //非字母的字符不受影响

        //字符串的分割
        String Colors = "Red,Black,White,Yellow,Blue";
        String[] arr1 = Colors.split(","); // 不限制元素个数
        String[] arr2 = Colors.split(",", 3); // 限制元素个数为3
        System.out.println("所有颜色为:");
        for (int i = 0; i < arr1.length; i++) {
            System.out.println(arr1[i]);
        }
        //所有颜色为:
        //Red
        //Black
        //White
        //Yellow
        //Blue
        System.out.println("前三个颜色为:");
        for (int j = 0; j < arr2.length; j++) {
            System.out.println(arr2[j]);
        }
        //前三个颜色为:
        //Red
        //Black
        //White,Yellow,Blue

        //String 类的 split() 方法可以按指定的分割符对目标字符串进行分割,分割后的内容存放在字符串数组中。该方法主要有如下两种重载形式:
        //str.split(String sign)
        //str.split(String sign,int limit)
        //str 为需要分割的目标字符串。
        //sign 为指定的分割符,可以是任意字符串。
        //limit 表示分割后生成的字符串的限制个数,如果不指定,则表示不限制,直到将整个目标字符串完全分割为止。
        //“.”和“|”都是转义字符,必须得加“\\”。
        //如果用“.”作为分隔的话,必须写成String.split("\\."),这样才能正确的分隔开,不能用String.split(".")。
        //如果用“|”作为分隔的话,必须写成String.split("\\|"),这样才能正确的分隔开,不能用String.split("|")。

        //替换字符串中的某些字符(串)
        //replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串),其语法格式如下:
        //字符串.replace(String oldChar, String newChar)
        //其中,oldChar 表示被替换的字符串;newChar 表示用于替换的字符串。replace() 方法会将字符串中所有 oldChar 替换成 newChar。
        //用于单个的字符或者字符串
        String a = "hello java,hello me! \\\\";
        System.out.println(a.replace("hello", "你好"));//你好 java,你好 me! \\
        System.out.println(a.replaceFirst("hello", "你好"));//你好 java,hello me! \\
        System.out.println(a.replaceAll("hello", "好好"));//好好 java,好好 me! \\
        System.out.println(a.replace("a", "9"));//hello j9v9,hello me! \\
        System.out.println(a.replace("!", "?"));//hello java,hello me? \\
        System.out.println(a.replace("\\", "\\\\\\\\"));//hello java,hello me! \\\\\\\\????
        System.out.println(a.replace("\\\\", "\\\\\\\\"));//hello java,hello me! \\\\????
        //字符串.replaceAll(String regex, String replacement),
        // 其中,regex 表示正则表达式,replacement 表示用于替换的字符串
        //何为正则表达式
        //????


        //字符串的比较:
        //方法1 equals()方法
        String str0 = "abc";
        String str02 = new String("abc");
        String str03 = "ABC";
        System.out.println(str0.equals(str02));//true
        System.out.println(str0.equals(str03));//false
        System.out.println(str0.equalsIgnoreCase(str03));//true
        //equalsIgnoreCase() 方法的作用和语法与 equals() 方法完全相同,唯一不同的是 equalsIgnoreCase() 比较时不区分大小写
        //方法2:==
        System.out.println(str0 == str02);//false
        // equals() 方法和==运算符执行的是两个不同的操作
        // equals() 方法比较字符串对象中的字符。而==运算符比较两个对象引用看它们是否引用相同的实例。
        //变量 s1 指向由“abc”创建的字符串实例。s2 所指的的对象是以 abc作为初始化而创建的。
        // 因此这两个字符串对象的内容是一样的。但它们是不同的对象,这就意味着 s1 和 s2 没有指向同一的对象,因此它们是不==的。

        //方法3:compareTo();经常应用到排序中
        //compareTo() 方法用于按字典顺序比较两个字符串的大小,该比较是基于字符串各个字符的 Unicode 值。
        //str.compareTo(String otherstr);
        //它会按字典顺序将 str 表示的字符序列与 otherstr 参数表示的字符序列进行比较。
        // 如果按字典顺序 str 位于 otherster 参数之前,比较结果为一个负整数;
        // 如果 str 位于 otherstr 之后,比较结果为一个正整数;
        // 如果两个字符串相等,则结果为 0
        System.out.println(str0.compareTo(str03));//32
        System.out.println(str03.compareTo(str0));//-32
        System.out.println(str0.compareTo(str02));//0

        //A的ASCII为65,a的ASCII为97

        //字符串的遍历
        String yy = "you are you, not me!";
        for (int i = 0; i < yy.length(); i++) {
            char temp = yy.charAt(i);
            System.out.print(temp);//you are you, not me!
        }
        System.out.println();
        char ch[] = yy.toCharArray();
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[i]);//you are you, not me!
        }

        //字符串的查找:
        //indexOf() 方法用于返回字符(串)在指定字符串中首次出现的索引位置,如果能找到,则返回索引值,否则返回 -1。
        //str.indexOf(value)
        //str.indexOf(value,int fromIndex)
        //从头或者指定位置开始找
        //其中,str 表示指定字符串;value 表示待查找的字符(串);fromIndex 表示查找时的起始索引,
        // 如果不指定 fromIndex,则默认从指定字符串中的开始位置(即 fromIndex 默认为 0)开始查找。
        String you="how great are you?";
        int index0=you.indexOf("ou");//搜索字符串
        int index1=you.indexOf('a');//搜索字符
        int index2=you.indexOf('a',10);//搜索范围包括开始搜索位置的字符
        System.out.println(index0);//15,o的索引值
        System.out.println(index1);//7
        System.out.println(index2);//10
        //lastIndexOf() 方法用于返回字符(串)在指定字符串中最后一次出现的索引位置,如果能找到则返回索引值,否则返回 -1。
        //str.lastIndexOf(value)
        //str.lastlndexOf(value, int fromIndex)
        //注意:lastIndexOf() 方法的查找策略是从右往左查找,如果不指定起始索引,则默认从字符串的末尾开始查找。
        System.out.println(you.lastIndexOf("ou"));//15
        System.out.println(you.lastIndexOf('a'));//10
        System.out.println(you.lastIndexOf('a',9));//7  ,从9往前的范围搜索,因为是从末尾搜索的

        //String 类的 charAt() 方法可以在字符串内根据指定的索引查找字符
        //字符串名.charAt(索引值)
        System.out.println(you.charAt(0));//h

        //空字符串
        //""是一个长度为 0 且占内存的空字符串,在内存中分配一个空间,可以使用 Object 对象中的方法。
        // null 是空引用,表示一个对象的值,没有分配内存,调用 null 的字符串的方法会抛出空指针异常
        //检查一个字符串是否为空
        String oo="";
        if (oo.length() == 0){
            System.out.println("空字符串");//空字符串
        }
        if(oo.equals("")){
            System.out.println("this is also kong");//this is also kong
        }
        String qq=null;
        if(qq==null){
            System.out.println("this is null String");//this is null String
        }

        String str11 = new String();
        String str22 = null;
        String str33 = "";

        System.out.println(str33.length()); // 空字符串""的长度为0
        //System.out.println(str22.length()); // 抛出空指针异常
        //Exception in thread "main" java.lang.NullPointerException

        System.out.println(str11); // 输出""
        System.out.println(str11 == str22); // 内存地址的比较,返回false
        System.out.println(str11.equals(str22)); // 值的比较,返回false
        System.out.println(str22 == str33); // 内存地址的比较,返回false
        System.out.println(str33.equals(str22)); // 值的比较,返回false
        System.out.println(str11 == str33); // 内存地址的比较,返回false
        System.out.println(str11.equals(str33)); // 值的比较,返回true








    }
}

参考:http://c.biancheng.net/view/5823.html

发布了45 篇原创文章 · 获赞 8 · 访问量 5865

猜你喜欢

转载自blog.csdn.net/wenyunick/article/details/103376913