JAVA笔记之——String类和字符串(持续更新)

String 类


1.返回字符串中字符数(字符串长度)的方法: length()

//用法: 

public class Test{
    public static void main(String[] args){
        String str = "Hello Java!";
        int leng = str.length();
        System.out.println(str+"中有"+leng+"个字符");
    }
}

输出:

Hello Java!中有11个字符 //空格,标点符号都算一个字符

2.字符串中指定位置获取字符的方法:charAt(index)

//用法: 

public class Test{
    public static void main(String[] args){
        String str = "Hello Java!";
        char ch0 = str.charAt(0);
        char ch1 = str.charAt(4);
        System.out.println(str+"中第一个字符是"+ch0);
        System.out.println(str+"中第四个字符是"+ch1);
    }
}

输出:

Hello Java!中第一个字符是H
Hello Java!中第四个字符是o
//空格,标点符号都算一个字符

下面是字符串str的下标信息,如果要获取字符在括号中输入小标值,比如字符串中第一个字符'W'的下标值是0。

方法str.charAt(index)可用于提取字符串str中的某个特定字符,其中下标index 的取值范围在0~str.length()-l之间

0 1 2 3 4 5 6 7 8 9 0
H e l l o J a v a

3.连接两个字符串的方法:concat (str1)

//用法: 
//str.concat (str1)等价于str+str1

public class Test{
    public static void main(String[] args){
        String str = "Hello ";
        String str1 = "Java!"
        System.out.println("第一个字符串是:"+str);
        System.out.println("第二个字符串是:"+str1);
        System.out.println("连接两个字符串:"+str.concat (str1));
       
    }
}

输出:

第一个字符串是:Hello 
第二个字符串是:Java!
连接两个字符串:Hello Java!

4.字符串转换成大写字母的方法:toUpperCase()

//用法: 


public class Test{
    public static void main(String[] args){
        String str = "Hello Java!";
        String str1 = str.toUpperCase();
        System.out.println("原字符串:"+str);
        System.out.println("转换成大写后:"+str1);
       
    }
}

输出:

原字符串:Hello Java!
转换成大写后:HELLO JAVA!

5.字符串转换成小写字母的方法:toLowerCase()

//用法: 跟toUpperCase()同理


public class Test{
    public static void main(String[] args){
        String str = "Hello Java!";
        String str1 = str.toLowerCase();
        System.out.println("原字符串:"+str);
        System.out.println("转换成小写后:"+str1);
       
    }
}

输出:

原字符串:Hello Java!
转换成大写后:hello java!

6.删除字符串两端空白字符的方法:trim()

/*
方法trim()通过删除字符串两端的空白字符返回一个新字符串。字符 ' ', \t, \f, \r, \n 都被称为空白字符
*/
//用法: 


public class Test{
    public static void main(String[] args){
        String str = "\t Hello Java! \n";
        String str1 = str.trim();
        System.out.print(str);
       
    }
}

输出:

Hello Java! //两端没有空白字符

字符串的比较

7. 判断两个字符串是否相等的方法:equals(str1)

public class Test{
    public static void main(String[] args){
        String str = "Hello World!";
        String str1 = "Hello World!";
        String str2 = "hello world";
        
       System.out.println(str+"和"+str1+"是否相等?"+str.equals(str1));
       System.out.println(str+"和"+str2+"是否相等?"+str.equals(str2));
    }
}

输出:

Hello World!和Hello World!是否相等?true
Hello World!和hello world是否相等?felse

操作符只能检测string1 和string2是否指向同一个对象,但它不会告诉你它们的内容是否相同。因此,不能使用操作符判断两个字符串变量的内容是否相同。取而代之,应该使用equals 方法。


8.判断两个字符串是否相等(不区分大小写)的方法:equalsIgnoreCase(str1)

public class Test{
    public static void main(String[] args){
        String str = "Hello World!";
        String str1 = "Hello World";
        String str2 = "hello world!";
        
       System.out.println(str+"和"+str1+"是否相等?"+str.equalsIgnoreCase(str1));
       System.out.println(str+"和"+str2+"是否相等?"+str.equalsIgnoreCase(str2));
       System.out.println(
           str1+"和"+str2+"是否相等?"+str1.equalsIgnoreCase(str2));
    }
}

输出:

Hello World!和Hello World是否相等?felse
Hello World!和hello world!是否相等?true
Hello World和hello world!是否相等?felse

9.比较两个字符串大小的方法:compareTo(str1)

public class Test{
    public static void main(String[] args){
        String str = "Hello World";
        String str1 = "Hello World!";
        String str2 = "hello world";
        
       System.out.println(str+"和"+str1+"是否相等?"+str.compareTo(str1));
       System.out.println(str+"和"+str2+"是否相等?"+str.compareTo(str2));
       System.out.println(
           str1+"和"+str2+"是否相等?"+str1.compareTo(str2));
    }
}

输出:

Hello World和Hello World!是否相等?-1
Hello World和hello world是否相等?-32
Hello World!和hello world是否相等?-32

如果str1与str2 相等,那么该方法返回值0; 如果按字典顺序(即以Unicode 码的顺序)str1小于str2, 那么方法返回值小于0; 如果按字典顺序str1大于str2,方法返回值大于0。

方法compareTo 返回的实际值是依据str1 和str2 从左到右数第一个不同字符之间的距离得出的。例如,假设str1 为"abc",str2 为"abg", 那么sl.compareTo(str2)返回-4。首先比较的是str1与str2 中第一个位置的两个字符(a与a)。因为它们相等,所以比较第二个位置的两个字符(b与b)。因为它们也相等,所以比较第三个位置的两个宇符(c 与g)。由于字符c 比字符g 小4, 所以比较之后返回-4。


10.比较两个字符串大小(不分大小写)的方法:compareToIgnoreCase(str1)

以上同理,只是不区分字母大小写


11.判断字符串是否以特定的前缀开始的方法:startsWith(prefix)

12.判断字符串是否以特定的后缀结束的方法:endsWith(suffix)

public class Test{
    public static void main(String[] args){
        String str = "Hello World";
        String str1 = "Hello World!";
        String str2 = "hello world!";
        
        System.out.println(str+"以He开头"+" "+str.startsWith("He"));
        System.out.println(str1+"以Hp开头"+" "+str.startsWith("Hp"));
        System.out.println(str2+"以rld结尾"+" "+str.endsWith("rld"));
    }
}

输出:

Hello World以He开头 true
Hello World!以Hp开头 false
hello world!以rld结尾 true

13.判断str1是否该字符串的子字符串的方法:contains(str1)

public class Test{
    public static void main(String[] args){
        String str = "Hello World";
        String str1 = "Hello World!";
        String str2 = "hello world!";
        
        System.out.println(str+"包含于"+str1+" "+str.contains(str1));
        System.out.println(str1+"包含于"+str+" "+str1.contains(str));
        System.out.println(str2+"包含于"+str1+" "+str2.contains(str1));
    }
}

输出:

Hello World包含于Hello World! false
Hello World!包含于Hello World true
hello world!包含于Hello World! false

14. 获取子字符串的方法:substring()

substring(beginIndex) 返回从下标位置beginIndex到字符串结尾的字符串
substring(beginIndex,endIndex) 返回从下标位置beginIndex到endIndex-1字符串结尾的字符串
public class Test{
    public static void main(String[] args){
        String str = "Hello World";
        
        System.out.println(str.substring(6));
        System.out.println(str.substring(0,5));
    }
}

输出:

World
Hello

15.获取字符串中子串和字符的方法:indexOf() 和 lastIndexOf()

方法 描述
indexOf(ch) 返回字符串中出现的第一个ch 的下标。如果没有匹配的,返回-1
indexOf(ch,fromIndex) 返回字符串中fromlndex 之后出现的第一个ch 的下标。如果没有匹配的,返回-1
indexOf(str) 返回字符串中出现的第一个str的下标。如果没有匹配的,返回-1
indexOf(str,fronIndex) 返回字符串中fromlndex 之后出现的第一个str 的下标。如果没有匹配的,返回-1
lastIndexOf(ch) 返回字符串中出现的最后一个ch 的下标。如果没有匹配的,返回-1
lastIndexOf(ch,fromIndex) 返回字符串中fromlndex 之前出现的最后一个ch 的下标。如果没有匹配的,返回-1
lastIndexOf(str,fronIndex) 返回字符串中出现的最后一个str 的下标。如果没有匹配的,返回-1
lastIndexOf(str,fronIndex) 返回字符串中fromlndex 之前出现的最后一个str 的下标。如果没有匹配的,返回-1
public class Test{
    public static void main(String[] args){
        String str = "Hello World";
        
        System.out.println(str.indexOf('o')); //4
        System.out.println(str.indexOf('H')); //0
        System.out.println(str.indexOf('k')); //-1
        System.out.println(str.indexOf('o',5)); //7
        System.out.println(str.indexOf("Wo")); //6
        System.out.println(str.indexOf("World",4)); //6
        System.out.println(str.indexOf("world",4)); //-1
        
        System.out.println(str.lastIndexOf('H')); //0
        System.out.println(str.lastIndexOf('o')); //7
        System.out.println(str.lastIndexOf("llo")); //2
        System.out.println(str.lastIndexOf("Hello")); //0
        System.out.println(str.lastIndexOf("ell",5)); //1
        System.out.println(str.lastIndexOf("Hello",4)); //0

    }
}

输出:

4  
0
-1
7
6
6
-1
0
7
2
0
1
0

附:字符串与数字间的转换

可以将数值型字符串转换为数值。要将字符串转换为int 值,使用Integer.parselnt 方法,如下所示:

String intString = "1234"
int intValue = Integer.parseInt(intString);//也就是 intValue = 1234

要将字符串转换为double 值,使用Double.parseDouble 方法,如下所示:

String doubleString = "12.34"
double doubleValue = Double.parseDouble(doubleString);//也就是 doubleValue=12.34

如果字符串不是数值型字符串,转换将导致一个运行时错误。Integer和Double 类都包含在java.lang 包中,因此它们是自动导入的。

可以将数值转换为字符串,只需要简单使用字符串的连接操作符,如下所示:

int number = 1234;
String str = number + ""; //这样数值number就转换成字符串了
posted @ 2020-11-01 16:01  MerdanGh  阅读(146)  评论(0)    收藏  举报