java基础(9)(String类,构造方法及使用,字符串比较,字符串获取,字符串转换,分给去空格,字符串截取拼接小练习)

本文详细讲解了Java String类的基本概念,包括字符串的不可变性、共享机制,以及字符串比较、获取、转换、分割、截取等常用方法的示例。涵盖了equals、equalsIgnoreCase、length、charAt、indexOf等方法,适合初学者和进阶者学习和参考。
摘要由CSDN通过智能技术生成

String
概念

String

概念

    public final class String
        extends Objectimplements Serializable, Comparable<String>, CharSequence
    String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
    字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。
    因为 String 对象是不可变的,所以可以共享。

特点

        字符串不变:字符串的值在创建后不能被更改
        因为String对象是不变的,所以它们可以被共享
        String的本质:JDK1.8之前是char[]数组;JDK1.8之后是byte[]

构造方法

     public String():            创建了一个空白的字符串
     public String(char[] array):根据char数组创建字符串对象
     public String(byte[] array):根据byte数组创建字符串对象
     public String(char[] value, int offset, int count): 将char数组的一部分转换成字符串对象
     public String(byte[] bytes, int offset, int length) :将byte数组的一部分转换成字符串对象

常用方法
字符串比较相关方法

    package string.字符串的比较相关方法;
     
    /**
     * @Describe
     * @Author Double LiFly
     * @date 2021/4/16 12:07
     */
    public class StringEquals {
        public static void main(String[] args) {
            /**
             * >* public boolean equals (Object anObject) :将此字符串与指定对象进行比较
             * >* public boolean equalsIgnoreCase(String anotherString) : 将此字符串与指定对象进行比较,忽略大小写
             * >* public boolean endsWith(String suffix): 判断此字符串是否以指定的后缀开始
             * >* public boolean startsWith(String prefix): 判断此字符串是否以指定的前缀开始 :
             */
            String str = "abc";
            String str1 = "abc";
            String str2 = "ABC";
     
            //public boolean equals (Object anObject) :将此字符串与指定对象进行比较
            System.out.println(str.equals(str1));//true
            System.out.println(str.equals(str2));//false
     
            //public boolean equalsIgnoreCase(String anotherString) : 将此字符串与指定对象进行比较,忽略大小写
            System.out.println(str.equalsIgnoreCase(str1));//true
            System.out.println(str.equalsIgnoreCase(str2));//true
     
            //public boolean endsWith(String suffix): 判断此字符串是否以指定的后缀开始
     
            String fileName = "test.java";
            System.out.println(fileName.endsWith("class"));//false
            System.out.println(fileName.endsWith("java"));//true
     
            //public boolean startsWith(String prefix): 判断此字符串是否以指定的前缀开始 :
            System.out.println(fileName.startsWith("test"));//true
            System.out.println(fileName.startsWith("Test"));//false
        }
    }

字符串获取相关方法

    package string.字符串的获取相关方法;
     
    /**
     * @Describe
     * @Author Double LiFly
     * @date 2021/4/16 14:11
     */
    public class GetString {
        public static void main(String[] args) {
            /**
             * >* public int length():返回此字符串的长度
             * >* public String concat(String str): 将指定的字符串连接到该字符串的末尾。
             * >* public char charAt(int index): 返回指定索引处的char值。
             * >* public int indexOf(String str):返回指定子字符串第一次出现在该字符串内的索引。
             */
     
            //public int length():返回此字符串的长度
            String str = "sadhasfdhasfhasfhuiahfaffasjkf123";
            System.out.println(str.length());
     
            //public String concat(String str): 将指定的字符串连接到该字符串的末尾。
            String str1 = "hello";
            String str2 = "world";
            System.out.println(str1.concat(str2));
            System.out.println(str1+str2);
     
            //public char charAt(int index): 返回指定索引处的char值。
            System.out.println(str1.charAt(2));
     
            //public int indexOf(String str):返回指定子字符串第一次出现在该字符串内的索引。
            String chs = "abcdabcdabcdabcdabcd";
            System.out.println(chs.indexOf('a'));
            System.out.println(chs.indexOf("abcd"));
            System.out.println(chs.indexOf("abcde"));
        }
    }

字符串转换相关方法

    package string.字符串的转换相关方法;
     
    import java.io.UnsupportedEncodingException;
    import java.util.Arrays;
     
    /**
     * @Describe
     * @Author Double LiFly
     * @date 2021/4/16 14:25
     */
    public class ChangeString {
        public static void main(String[] args) throws UnsupportedEncodingException {
            /**
             * >* public char[] toCharArray() : 将此字符串转换为新的字符数组。
             * >* public byte[] getBytes() : 使用平台的默认字符集将该String编码转换为新的字节数组。
             * >* public String replace(char oldChar, char newChar) :  将oldChar匹配的字符串使用newChar字符串替换。
             * >* public String replaceFirst(String regex,String replacement)  :  用给定的 replacement 替换此字符串匹配给定的regex的第一个子字符串。
             * >* public String toUpperCase() :  将字符中转换为大写
             * >* public String toLowerCase():  将字符中转换为小写
             */
     
           // public char[] toCharArray() : 将此字符串转换为新的字符数组。
            String str = "abcdefghijklmnopqrstuvwxyz";
            char[] chars = str.toCharArray();
            System.out.println(chars);
            System.out.println(Arrays.toString(chars));
     
            //public byte[] getBytes() : 使用平台的默认字符集将该String编码转换为新的字节数组。
            String str1 = "你好";
            byte[] gbks = str1.getBytes("GBK");
            System.out.println(Arrays.toString(gbks));
     
            //public String replace(char oldChar, char newChar) :  将oldChar匹配的字符串使用newChar字符串替换。
            String str2 = "你大爷的,会不会玩,不会玩滚";
            String newStr = str2.replace("大爷", "**");
            System.out.println(newStr);
     
            // public String replaceFirst(String regex,String replacement)  :  用给定的 replacement 替换此字符串匹配给定的regex的第一个子字符串。
            String str3 = "abcabcabc";
            String a = str3.replaceFirst("a", "*");
            System.out.println(a);
     
            //public String toUpperCase() :  将字符中转换为大写
            String s = str3.toUpperCase();
            System.out.println(s);
     
            //public String toLowerCase():  将字符中转换为小写
            String s1 = s.toLowerCase();
            System.out.println(s1);
     
        }
    }

分割和去空格相关方法

    package string.分割和去空格的功能方法;
     
    import java.util.Arrays;
     
    /**
     * @Describe
     * @Author Double LiFly
     * @date 2021/4/16 14:59
     */
    public class SubString {
        public static void main(String[] args) {
            /**
             * >* public String[] split(String regex):将此字符串按照给定的regex(规则)拆分为字符串数组。
             * >* public String trim():去除该字符串的两端空格
             */
     
            //public String[] split(String regex):将此字符串按照给定的regex(规则)拆分为字符串数组。
            String str = "Hello world";
            String substring = str.substring(0, 5);
            System.out.println(substring);
            String substring1 = str.substring(6);
            System.out.println(substring1);
     
            //public String trim():去除该字符串的两端空格
            String str1 = " hello world ";
            String trim = str1.trim();
            System.out.println(trim);
     
            //public String[] split(String regex):将此字符串按照给定的regex(规则)拆分为字符串数组。
            String string = "a,b,c,d";
            String[] split = string.split("\\+");
            System.out.println(Arrays.toString(split));
            String[] s = string.split("_");
            System.out.println(Arrays.toString(s));
     
            String strs = "a.b.c.d";
            String[] split1 = strs.split(",");
            System.out.println(Arrays.toString(split1));
            String[] split2 = strs.split("\\.");
            System.out.println(Arrays.toString(split2));
     
        }
    }

字符串截取相关方法

    package string.字符串的截取方法;
     
    /**
     * @Describe
     * @Author Double LiFly
     * @date 2021/4/16 14:19
     */
    public class SubString {
        public static void main(String[] args) {
            /**
             * >* public String substring(int index): 返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
             * >* public String substring(int beginIndex, int endIndex): 返回一个子字符串,从 beginIndex 到endIndex截取字符串。
             *                                                          含beginIndex,不含endIndex。
             */
     
            String str = "abc abc edg rng we";
            System.out.println(str.substring(5));
            System.out.println(str.substring(4,8));
        }
    }

指定字符串拼接小练习(一)

    package string.按指定格式拼接字符串;
     
    /**
     * @Describe
     * @Author Double LiFly
     * @date 2021/4/16 15:12
     */
    public class Test {
        public static void main(String[] args) {
            /**
             * >* 定义一个方法,把数组{1,2,3}按照指定格式拼接成一个字符串。格式参照如下:
             *     * [word1#word2#word3]
             */
            int[]arr = {1,2,3};
    //        String arrayToString = getArrayToString(arr);
    //        System.out.println(arrayToString);
            String arrayToString = getArrayToString(arr);
     
            System.out.println(arrayToString);
     
        }
        /*public static String getArrayToString(int[]arr){
            String str = "[";
            for (int i = 0; i < arr.length; i++) {
                if (i == arr.length-1){
                    str += arr[i];
                }else {
                    str += arr[i]+",";
                }
            }
            str += "]";
            return str;
        }*/
     
        public static String getArrayToString(int[]arr){
            String str = "[";
            for (int i = 0; i < arr.length; i++) {
                if (i == arr.length-1){
                    str += arr[i];
                }else {
                    str += arr[i]+"#";
                }
            }
            str += "]";
            return str;
        }
    }

统计字符个数小练习(二)

    package string.按指定格式拼接字符串;
     
    import java.util.Scanner;
     
    /**
     * @Describe
     * @Author Double LiFly
     * @date 2021/4/16 15:30
     */
    public class Test1 {
        public static void main(String[] args) {
            /**
             * 练习:统计输入的字符串中各种字符的个数
             *       需求: 键盘输入一个字符串,并且统计其中各种字符出现的次数。
             *       种类有:大写字母、小写字母、数字、其他
             *
             * 解题步骤
             *  1.创建四个变量
             *      大写字母:   upperCount
             *      小写字母:   lowerCount
             *      数字:      numberCount
             *      其他:      otherCount
             *  2.创建Scanner对象,键盘录入
             *  3.for循环遍历判断输入的字符属于大写字母或小写字母或数字或其他
             *  4.输出
             */
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入字符串:");
            String str = scanner.nextLine();
            char[] chars = str.toCharArray();
            getNumber(chars);
     
        }
        public static void getNumber(char[] chars){
            int upperCount = 0;
            int lowerCount = 0;
            int numberCount = 0;
            int otherCount = 0;
            for (int i = 0; i < chars.length; i++) {
               char ch =  chars[i];
               if (ch >= 'A' && ch <= 'Z'){
                   upperCount++;
               }else if (ch >= 'a' && ch <= 'z'){
                   lowerCount++;
               }else if (ch >= '0' && ch <= '9'){
                   numberCount++;
               }else {
                   otherCount++;
               }
            }
            System.out.println("大写字母为:"+upperCount+"个");
            System.out.println("小写字母为:"+lowerCount+"个");
            System.out.println("数字为:"+numberCount+"个");
            System.out.println("其他为:"+otherCount+"个");
        }
    }


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值