加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

13. java String类

发布时间:2020-12-15 07:21:12 所属栏目:Java 来源:网络整理
导读:一、字符串类 /*java.lang.String类代表字符串程序中所有的双引号字符串,都是String类的对象。就算没有new字符串中的内容,永不变;不可变字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组*/package china.java.demo;/*创建字符串3+1中方

一、字符串类

/*
java.lang.String类代表字符串
程序中所有的双引号字符串,都是String类的对象。就算没有new
字符串中的内容,永不变;不可变
字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组
*/

package china.java.demo;

/*
创建字符串3+1中方式;三种构造方法,一种直接创建
1. public String(),创建一个空白字符串,不含有任何内容
2. public String(char[] array),根据字符数组的内容,来创建对应的字符串
3. public String(byte[] array),根据字节数组的内容,来创建对应的字符串
 */
public class Demo01 {
    public static void main(String[] args) {
        // 使用空参构造
        String str1 = new String();
        System.out.println("第一个字符串" + str1);

        // 使用字符数组
        char[] charArray = {'A','B','C'};
        String str2 = new String(charArray);
        System.out.println(str2);

        // 使用字节数组
        byte[] byteArray = {98,99};
        String str3 = new String(byteArray);
        System.out.println(str3);

        // 直接创建
        String str4 = "Hello";
        System.out.println(str4);
    }
}

二、字符串方法

1. 字符串比较方法

/*
== 对象地址值比较,字符串内容比较,可使用2个方法
public boolean equal(Object obj),参数可以是任何对象

*/

/*
创建字符串3+1中方式;三种构造方法,一种直接创建
1. public String(),创建一个空白字符串,不含有任何内容
2. public String(char[] array),根据字符数组的内容,来创建对应的字符串
3. public String(byte[] array),根据字节数组的内容,来创建对应的字符串

注意事项:
1. 如果比较双方一个常量一个变量,推荐把常量字符串写在前面
 */
public class Demo01 {
    public static void main(String[] args) {

        // 直接创建
        String str1 = "Hello";
        String str2 = "Hello";
        char[] charArray = {'H','e','l','o'};
        String str3 = new String(charArray);
        String str4 = "hello";

        System.out.println(str1.equals(str2)); //true
        System.out.println(str1.equals(str3)); //true
        System.out.println(str3.equals("Hello")); //true
        System.out.println("Hello".equals(str1)); //true
        System.out.println(str1.equals(str4)); //false
    }
}
/*
public boolean equalsIgnoreCase(String str),忽略大小写,进行内容比较
*/
package china.java.demo;

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

        // 直接创建
        String str1 = "Hello";
        String str2 = "hello";

        System.out.println(str1.equalsIgnoreCase(str2)); //true

    }
}

2. 字符串获取

/*
public int length(),获取字符串中含有字符个数,拿到字符串长度
public String concat(String str),将当前字符串和参数字符串拼成新字符串
public char charAt(int index),获取指定索引位置的单个字符
public int indexOf(String str),查找参数字符串在本字符串中出现的索引位置,没有返回-1
*/

package china.java.demo;

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

        // 直接创建
        String str1 = "HelloRGHJKJHGFyuioefywfwhfuwiehfwei";

        System.out.println(str1.length()); //35
        System.out.println(str1.concat("AB"));
        System.out.println(str1.charAt(10)); //J
        System.out.println(str1.indexOf("fwei")); //31
        System.out.println(str1.indexOf("f")); //19
        System.out.println(str1.indexOf("q")); //-1
    }
}

3. 字符串截取方法

/*
public String substring(int index),截取从参数位置一直到字符串结尾,返回新字符串
public String substring(int begin,int end),左闭右开
*/

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

        // 直接创建
        String str1 = "Helloworld";
        String str2 = str1.substring(5);
        String str3 = str1.substring(1,4);
        System.out.println(str2); //world
        System.out.println(str3); //ell
    }
}

4. 字符串转换方法

/*
public char[] toCharArray(),将当前字符串拆分为字符数组作为返回值
public byte[] getBytes(),获取当前字符串底层的字节数组
public String replace(CharSequence,oldString,CharSequence newString),将所有出现的老字符串替换成新字符串,返回替换之后的结果新字符串;备注:CharSequence可以接受字符串类型
*/
public class Demo01 {
    public static void main(String[] args) {

        char[] chars = "Hello".toCharArray();
        System.out.println(chars[0]); //H
        System.out.println(chars.length); //5

        byte[] bytes = "world".getBytes();
        for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]);
        }

        String str1 = "how do you do";
        String str2 = str1.replace("o","*");
        System.out.println(str1); //how do you do
        System.out.println(str2); //h*w d* y*u d*
    }
}

5. 字符串分隔方法

/*
public String[] split(String regex),按照参数规则,将字符串切分成若干部分
split参数其实是一个表达式;如果按照英文句点 . ,必须写 */
public class Demo01 {
    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 = "aaa.bbb.ccc";
        String[] array2 = str1.split(".");
        System.out.println(array2.length); //0
        String[] array3 = str2.split(".");
        System.out.println(array3.length); //3
        for (int i = 0; i <array3.length ; i++) {
            System.out.println(array3[i]);
        }
    }
}

三、字符串练习

1. 拼接字符串

// 定义一个方法,把数组[1,2,3]按照指定格式拼接成一个字符串。格式如:[world1#world2#world3]
public class Demo01 {
    public static void main(String[] args) {
        int[] array = {1,3};
        System.out.println(fromArrayToString(array));
    }

    public static String fromArrayToString(int[] array) {
        
        String new_str = "";
        for (int i = 0; i < array.length; i++) {
            new_str = new_str + "world".concat(Integer.toString(array[i])) + "#";
            System.out.println(new_str);
        }
        return "[" + new_str + "]";

    }
}
public class Demo01 {
    public static void main(String[] args) {
        int[] array = {1,3};
        System.out.println(fromArrayToString(array));
    }

    public static String fromArrayToString(int[] array) {
        String str = "[";

        for (int i = 0; i < array.length; i++) {
            if (i == array.length - 1) {
                str += "world" + array[i] + "]";
            } else {
                str += "world" + array[i] + "#";
            }
        }
        return str;

    }
}

2. 统计各字符在字符串中出现的次数

package china.java.demo;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        // 创建一个输入对象
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        // 输入字符串
        String input = sc.next();

        int countUppper = 0;
        int countLower = 0;
        // 将字符串拆解成字符数组进行迭代
        char[] charArray = input.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            char ch = charArray[i];
            if ('A' <= ch && ch <= 'Z') {
                countUppper++;
            } else {
                countLower++;
            }
        }
        System.out.println(countLower);
        System.out.println(countUppper);
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读