【JavaSE】String常见方法

目录

▮字符串的四种创建方法

▮isEmpty( ):判断字符串是否为空

▮indexOf( ):查找子串或字符

▮length( ):获取字符串长度

▮charAt( ):获取字符串里的字符

▮equals( ):比较字符串内容是否相同

▮compareTo( ):比较字符串的大小

▮split( ):分隔字符串

▮subString( ):取子字符串

▮replace( ):字符串替换

▮concat( ):连接字符串

▮getChars( ):转移字符串给char数组

▮toLowerCase( ):大写转小写

▮toUpperCase( ):小写转大写


字符串详解:http://t.csdn.cn/3gCz3


        欢迎各位在评论区提问或指出问题,请多多赐教   ——海鱼🐟

▮字符串的四种创建方法

public static void main(String[] args) {
    char[] chars = {'a',' ','f','i','s','h'};
    String str1 = "a fish in the sea"; //不new对象,传字符串常量
    String str2 = new String("a fish in the sea"); //new对象,传入字符串常量的char[]数组
    String str3 = new String(chars); //new对象,给新对象传入chars数组
    String str4 = new String(str1);  //new对象,传入str1的char[]数组
    System.out.println(str1 + "\n" + str2 + "\n" + str3 + "\n" + str4);
}

        第一种没有创建新对象,是把常量池对象的位置传给str1;二三四则是创建了一个新对象,传入参数的char数组。

        •运行截图


▮public boolean isEmpty( ):判断字符串是否为空

public static void main(String[] args) {
    String str = "a fish in the sea";
    boolean bp = str.isEmpty(); //不为空,则返回flase
    if(!bp){
        System.out.println("字符串不为空");
    }
}

        你可能会想,判断字符串是否为空直接用 “ str == "" ”就行。但要注意,str是String对象的引用,并不是是char[ ]数组的引用。我们无法从外界去访问char[ ],只能用String提供的公开方法 “ isEmpty( ) ”来判断。

        为空时返回的是true,而不是false。

        ▪运行截图


▮public int indexOf(......):查找子串或字符

public static void main(String[] args) {
    String str = "a fish in the sea";
    //从0开始,第一个i的下标
    int index1 = str.indexOf('i'); //一个参数 (char ch)
    //从0开始,第一个"fish"的首字符下标
    int index2 = str.indexOf("fish"); //一个参数 (String str)
    //从下标4开始,第一个i的下标
    int index3 = str.indexOf('i',4); //两个参数 (char ch, int formaindex)
    System.out.println("第一个i的下标:" + index1);
    System.out.println("第一个fish的下标:" + index2);
    System.out.println("从下标formindex处开始,第一个i的下标:" + index3);
}

        indexOf(……)的返回值是一个int,表示下标。

        •运行截图


▮public int length( ):获取字符串长度

public static void main(String[] args) {
    String str = "a fish in the sea";
    int len = str.length();
    System.out.println(str + ": len = "+len);
}

        ▪运行截图


▮public char charAt(int index):获取字符串里的字符

public static void main(String[] args) {
    String str = "hello";
    //按照下标来获取字符
    System.out.println("str第5个字符:'" + str.charAt(4) + "'"); //一个参数(int index)
}

        只能获取String的字符,不能修改字符,因为String有不可变性。

        •运行截图


▮public boolean equals(String str):比较字符串内容是否相同

public static void main(String[] args) {
    String str1 = new String("a fish in the sea");
    String str2 = new String("a fish in the sea");
    if(str1.equals(str2)) { //equals
        System.out.println("str1 == str2");
    }
    if(str1 == str2){ //" == "
        System.out.println("str1 == str2");
    }
}

        比较字符串内容相同不能直接使用“==”来判断,“==”比较的是两个对象指向的地址,而不是字符串的内容。因为字符串内容是private,被封装的,要比较只能通过内部的方法equals()来比较。

        •运行截图


▮public int compareTo(String str):比较字符串的大小

public static void main(String[] args) {
    String str1 = new String("a fish in the sea");
    String str2 = new String("a fish in the sea");
    String str3 = new String("b fish in the sea");
    if(str1.compareTo(str2) == 0) { //返回值:0:相同,小于0的数:小,大于0的数:大
        System.out.println("str1 == str2");
    }
    if(str1.compareTo(str3) < 0) {
        System.out.println("str1 < str3");
    }
}

        compareTo()的返回值是 “ str1的字符 - str2的字符 ”,注意是字符相减。

        •运行截图


▮public String[] split(String regex):分隔字符串

public static void main(String[] args) {
    String str = "a_fish_in_the_sea";
    //根据字符串" "将str分割成 String[] strs,注意是字符串,不是字符
    String[] strs1 = str.split("_"); //一个参数(String regex)
    //根据字符串" "将str分割成 String[3] strs,第二个参数是分割后的数组个数
    String[] strs2 = str.split("_",3); //两个参数(String regex, int limit)

    //foreach打印字符串数组
    for(String s:strs1){
        System.out.print(s+" | ");
    }
    System.out.println();
    for(String s:strs2){
        System.out.print(s+" | ");
    }
}

        •运行截图


▮public String subString(……):取子字符串

public static void main(String[] args) {
    String str = "a fish in the sea";
    String str1 = str.substring(7);// 一个参数 (int beginIndex)
    String str2 = str.substring(2,6);// 两个参数(int beginIndex, int endIndex)
    System.out.println(str1);
    System.out.println(str2);
}

        两个重载方法。第一个从begin参数开始,一直截取到末尾字符;第二个从begin参数开始,一直截取到end参数的前面一个字符,左闭右开。

        •运行截图


▮public String replace(......):字符串替换

public static void main(String[] args) {
    String str = "a fish in the land";
    //将字符串中的"land"替换成"sea"
    str = str.replace("land", "sea");
    System.out.println(str);
}

        •运行截图


▮public String concat(String str):连接字符串

public static void main(String[] args) {
    String str = "a fish";
    //将字符串" in the sea"连接到str的后面
    str = str.concat(" in the sea");
    System.out.println(str);
}

        •运行截图


▮public void getChars(......):转移字符串给char数组

public static void main(String[] args) {
    String str = "a fish in the land";
    char[] animal = new char[10];
    animal[0] = 'a';
    //把str的[2,6)的字符传给 char[] animal,从下标2开始传入
    str.getChars(2,6,animal,2); //四个参数,(int srcBegin, int srcEnd, char[] dst, int dstBegin)
    for(char ch:animal){
        System.out.print(ch);
    }
}

        •运行截图


▮public String toLowerCase( ):大写转小写

public static void main(String[] args) {
    String str = "a fish in the land";
    str = str.toUpperCase();
    System.out.println(str);
}

        •运行截图


▮public String toUpperCase( ):小写转大写

public static void main(String[] args) {
    String str = "A FISH IN THE LAND";
    str = str.toLowerCase();
    System.out.println(str);
}

        •运行截图

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值