常用类(3-2):String类的练习

常用类(3-2):String类的练习

案例1:遍历获取字符串中的每一个字符

/*
    "hadoopjavaMySQL12138"
    
    需求:遍历获取字符串中的每一个字符
 */
public class StringDemo1 {
    public static void main(String[] args) {
        //定义该字符串
        String s = "hadoopjavaMySQL12138";
        //将字符串转换为字符数组(s.toCharArray().var回车)
        char[] c = s.toCharArray();
        //遍历字符数组
        for(int i = 0;i<c.length;i++){
            if(i==0){
                System.out.print("["+c[i]);
            }else if(i==c.length-1){
                System.out.print(c[i]+"]");
            }else{
                System.out.print(c[i]);
            }
        }
    }
}
        执行结果如下:
                    [hadoopjavaMySQL12138]
                    Process finished with exit code 0

案例2:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数

/*
    "hadoopjavaMySQL12138"
    需求:
          统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数
          (不考虑其他字符)
 */
public class StringDemo2 {
    public static void main(String[] args) {
        //定义该字符串
        String s = "hadoopjavaMySQL12138";
        //将字符串转换为字符数组(s.toCharArray().var回车)
        char[] c = s.toCharArray();

        //定义三个变量统计三个结果
        int bigCount = 0;
        int smallCount = 0;
        int numberCount = 0;
        //for()循环统计出现的次数
        for(int i = 0;i<c.length;i++){
            if(c[i] >= 'A' && c[i] <= 'Z'){
                bigCount++;
            }else if(c[i] >= 'a' && c[i] <= 'z'){
                smallCount++;
            }else if(c[i] >= '0' && c[i] <= '9'){//注意:数字字符也要加引号
                numberCount++;
            }
        }
        	//统计次数
        System.out.println("大写字母字符的个数为:"+bigCount);
        System.out.println("小写字母字符的个数为:"+smallCount);
        System.out.println("数字字符的个数为:"+numberCount);
    }
}

            执行结果如下:
                        大写字母字符的个数为:4
                        小写字母字符的个数为:11
                        数字字符的个数为:5

                        Process finished with exit code 0

案例3:将一个字符串的首字母转成大写,其余字母转成小写

/*
        需求:将一个字符串的首字母转成大写,其余字母转成小写

        举例:"hADoopJava" ---> "Hadoopjava"

        分析:
            1、全部转成小写
            2、获取第一个字符,转成大写
 */
public class StringDemo10 {
    public static void main(String[] args) {
        //定义该字符串
        String s = "hADoopJava";

        //将字符串中每一个字符转小写(s.toLowerCase().var回车)
        String s1 = s.toLowerCase();//hadoopjava

        //获取转成小写后的字符串中第一个字符(从索引0开始,截取1个输出)
        String s2 = s1.substring(0, 1);//h

        //将获取的第一个字符转大写
        String s3 = s2.toUpperCase();//H

        //获取除第一个字符以外的字符串(截取掉第1个,剩下的输出)
        String s4 = s1.substring(1);//adoopjava

        //将转大写的字符与后面所有小写的进行拼接
        String res = s3.concat(s4);//需要在前面的就写在前面:H+adoopjava
        System.out.println(res);//Hadoopjava
        
		/*
				链式编程
String res2 = s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase();
       		System.out.println(res2);
		*/
    }
}

案例4:键盘录入一个字符串,将字符串反转

/*
        字符串反转
            举例:键盘录入”abc”      输出结果:”cba”

        分析:
            1、导包并创建键盘录入对象
            2、创建一个空的字符串
            3、将字符串转换成字符数组
            4、倒着遍历,得到每一个字符
            4、将每次获取到的字符拼接
            5、输出
 */

//导包
import java.util.Scanner;
public class StringDemo {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个字符串:");//输入我爱阿伟
        //键盘输入一个字符串
        String s = sc.next();

        //定义一个空的字符串
        String s1 = "";

        //将输入的字符串转换成字符数组
        char[] chars = s.toCharArray();

        //倒着遍历,得到每一个字符
        for (int i = chars.length - 1; i >= 0; i--) {
            //将每次获取到的字符拼接
            s1 += chars[i];
        }
        System.out.println("倒序后的字符串为:" + s1);//伟阿爱我
    }
}

案例5:统计大串中小串出现的次数

*
    统计大串中小串出现的次数
字符串为” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”
需求:统计java出现了几次?
 */
 public class StringDemo13 {
    public static void main(String[] args) {
        //定义这个大的字符串
        String s1 = "woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";

        //定义一个需要找的小串
        String s2 = "java";

        //定义一个变量统计小串出现的次数
        int count = 0;

        //在大串中找到小串第一次出现的位置
        int index = s1.indexOf(s2);//返回的是首字母‘j’的索引值
        System.out.println("第一次找到java的索引值为:"+index);//第一次找到j的索引值为4

        //开始截取(可能第一次找的时候就没找到)
        if(index==-1){
            System.out.println("该大串中没有该小串");
        }else {
            while(index!=-1){//当索引不等于-1的时候开始截取(此时说明找到了j)
                count++;//如果找到了'j',次数加1
                //截取字符串:索引值加上小串的长度
                int startIndex = index + s2.length();
                s1 = s1.substring(startIndex);
                //继续查找小串出现的次数
                index = s1.indexOf(s2);
            }
        }
        System.out.println("java出现的次数为:"+count);
    }
}
            执行结果如下:
                        第一次找到java的索引值为:4
                        java出现的次数为:5

                        Process finished with exit code 0

上一篇:466. 统计重复个数(待完成)


下一篇:es6 Symbol.for(),Symbol.keyFor()