1、String类使用

java.lang.String 类代表字符串,此类不需要导入。

创建字符串的常见3+1种方式:

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

//三种构造方法:
        //1.使用空参构造:创建一个空白的字符串,不含任何内容
        //初始化String对象,表示空字符序列
        String str1 = new String();
        System.out.println("第一个字符:" + str1);

        //2.根据字符数组创建字符串
        char [] charArray = {'A','B','C'};
        String str2 = new String(charArray);
        System.out.println("第二个字符:" + str2);

        //3.根据字节数组创建字符串
        byte [] byteArray = {105,100,116};
        String str3 = new String(byteArray);
        System.out.println("第三个字符:" + str3);

// 直接创建
        String str4 = "Hello";
        System.out.println("第四个字符:" + str4);
    }
}

执行结果:

java定义一个空字符串 java创建空字符串_API

2、常用方法

1.比较方法

public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写

代码演示:

public class demo02 {

    public static void main(String[] args) {

//       1.equals:字符比较,区分字母大小写
        String str1 = "Hello";
        String str2 = "Hello";
        char[] charArray = {'H','e','l','l','o'};
        String str3 = new String(charArray);

        System.out.println(str1.equals(str2));//true
        System.out.println(str2.equals(str3));//true
        System.out.println(str3.equals("Hello"));//true

        //equal方法是区分大小写的
        String str4 = "hello";
        System.out.println(str1.equals(str4));//false

        //空字符的时候建议放后面
        String str5 = null;
        System.out.println("abc".equals(str5));//推荐:false
//        System.out.println(str5.equals("abc"));//空指针异常

//        2.equalsIgnoreCase:字符比较,不区分大小写

        String strA = "Java";
        String strB = "java";
        System.out.println(strA.equals(strB));//false
        System.out.println(strA.equalsIgnoreCase(strB));//true
    }
}

2.获取方法

public int length() :获取字符串中含有的字符个数,即字符串长度;
public String concat (String str) :将指定的字符串连接到该字符串的末尾。
public char charAt (int index) :获取指定索引位置的单个字符。(索引从0开始)
public int indexOf (String str) :查找指定字符串在本字符串中首次出现的索引位置,如果没有返回-1值。

代码演示:

public class demo03 {
    public static void main(String[] args) {
        //1.获取字符串的长度
        int length = "jjsdsdcfdsfdfdcsdffcssa".length();
        System.out.println("该段字符串长度为:" + length);

        //2.拼接字符串
        String str1 = "Hello, ";
        String str2 = "World !";
        String str3 = str1.concat(str2);
        System.out.println(str3);

        //3.获取指定索引位置的单个字符
        char ch = "lsjndhdnsjkemd".charAt(9);
        System.out.println("该段字符串的第9号索引位置的字符是:" + ch);

        //4.查找指定字符串在本字符串中首次出现的索引位置,若无则返回:-1
        String original = "jknndhdsmbjsthdsmtool";
        int index = original.indexOf("hdsm");
        System.out.println("'hasm'在该段字符串中首次出现的为索引值:" + index);
        System.out.println(original.indexOf("nihao"));//-1
    }
}

执行结果:

java定义一个空字符串 java创建空字符串_API_02


3.截取方法

public String substring (int index):截取从参数位置一直到字符串末尾的一段,返回新的字符串;
public String substring(int begin, int end): 截取从begin开始,一直到end结束,中间的字符串;
备注:[begin,end),包含左边,不包含右边。

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

         //截取到末尾
        String str1 = "HelloWorld!";
        String str2 = str1.substring(5);
        System.out.println(str2);//World

        //截取中间部分
        String str3 = str1.substring(4,7);
        System.out.println(str3);//oWo
    }
}

4.转换方法

public char[] toCharArray () :将此字符串转换为字符数组。
public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为字节数组。
public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使
用replacement字符串替换。

代码演示:

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

        //1.转换为字符数组
        char[] chars = "Hello".toCharArray();
        System.out.println(chars[1]);//e
        System.out.println(chars.length);

        //2.转换为字节数组
        byte[] bytes = "Hello".getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]);
        }

        //3.字符串的内容替换
        String str1 = "H0w d0 y0u d0?";
        String str2 = str1.replace("0","o");
        System.out.println(str1);
        System.out.println(str2);
    }
}

执行结果:

java定义一个空字符串 java创建空字符串_API_03


5.分割字符串的方法

public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。

代码演示:

public class demo06 {

    public static void main(String[] args) {

        //逗号
        String str1 = "aaa,bbb,ccc";
        String[] array1 = str1.split("," );
        for (int i = 0; i < array1.length; i++) {
            System.out.println(array1[i]);
        }

        //空格
        String str2 = "ddd eee fff";
        String[] array2 = str2.split(" " );
        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i]);
        }

        //英文句点“.”进行切分,必须写“\\.”(两个反斜杠)
        String str3 = "ggg.hhh.iii";
        String[] array3 = str3.split("\\." );
        for (int i = 0; i < array3.length; i++) {
            System.out.println(array3[i]);
        }
    }
}

执行结果:

java定义一个空字符串 java创建空字符串_API_04


6.练习

题目:
键盘输入一个字符串,并且统计其中各种字符出现的次数。
种类:大写字母、小写字母、数字、其他;

代码实现:

import java.util.Scanner;

public class demo07 {

    public static void main(String[] args) {

        //1.获取键盘输入的一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String input = sc.next();

        //2.定义与初始化统计变量
        int countUpper = 0;
        int countLower = 0;
        int countNumber = 0;
        int countOther = 0;

        //3.遍历字符串,进行统计
        //字符串转换为字符数组
        char[] charArray = input.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            //读取当前的单个字符
            char ch = charArray[i];
            if ('A' <= ch && ch <= 'Z' ){
                countUpper ++;
            }else if('a' <= ch && ch <='z'){
                countLower ++;
            }else if('0' <= ch && ch <='9'){
                countNumber ++;
            }else {
                countOther ++;
            }
        }

        //4.打印
        System.out.println("大写字母有:" + countUpper +"个");
        System.out.println("小写字母有:" + countLower +"个");
        System.out.println("数字有:" + countNumber +"个");
        System.out.println("其他字符有:" + countOther +"个");
    }

}

运行结果:

java定义一个空字符串 java创建空字符串_java语言基础_05