• 13. java String类


    一、字符串类

    /*
    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', '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, 2, 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, 2, 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);
        }
    
    
    
    
  • 相关阅读:
    【调查】用户眼中已经消亡的十大IT技术
    Asp.net Cache
    双卡已落伍 三卡三待全键盘手机亮相
    C#修改本机的IP,网关等网络地址的代码片段
    【ZT】实战.NET大规模网站架构:Web加速器
    【面霸】面试ERP实施顾问的三招“必杀技”
    数据库优化使用索引优化存储过程
    【備查】informix sql函数使用说明大全
    “8月3日我们要过男人节”
    Asp.Net网站优化:数据库索引优化
  • 原文地址:https://www.cnblogs.com/hq82/p/11703763.html
Copyright © 2020-2023  润新知