ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java-22.1 String类小练习

2021-10-10 15:34:54  阅读:200  来源: 互联网

标签:字符 Java String int s1 System 22.1 字符串 类小


1、统计一个字符串中大写字母,小写字母,数字出现的次数

 /*需求:统计一个字符串中大写字母,小写字母,数字出现的次数

        "HadoopJava12138"
        结果:
        大写字符:2个
        小写字符:8个
        数字字符:5个

        分析:
        1.输入字符串
        2.大写计数:Acount
          小写计数:acount
          数字计数: count
       3.获取字符串的长度
       4,将字符串转换成字符数组
       5.遍历判断
*/

public class Stringtext1 {
    public static void main(String[] args) {
        String s = "HadoopJava12138";
        int Acount = 0;
        int acount = 0;
        int count = 0;
        //方式一  使用将字符串转换功能中的toCharArray()方法将字符串转化为字符数组
        char[] c = s.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] >= 'a' && c[i] <= 'z') {
                acount++;
            } else if (c[i] >= 'A' && c[i] < 'Z') {
                Acount++;
            } else if (c[i] >= '0' && c[i] <= '9') {
                count++;
            }
        }

        //方式二  使用String类的获取功能的charAt()方法
//        for (int i = 0; i < s.length(); i++) {
//            char c = s.charAt(i);
//            if (c >= 'a' && c <= 'z') {
//                acount++;
//            } else if (c >= 'A' && c < 'Z') {
//                Acount++;
//            } else if (c >= '0' && c <= '9') {
//                count++;
//            }
//        }

        System.out.println("字符串中大写字符个数" + Acount);
        System.out.println("字符串中小字符个数" + acount);
        System.out.println("字符串中数字字符个数" + count);
    }
}

 2.把一个字符串的首字母转成大写,其余的都是小写。

/*
需求:把一个字符串的首字母转成大写,其余的都是小写。
 举例:"HadoOPJava"   --->  "Hadoopjava"
 分析:
            方式1:
                1、把字符串全部转成小写
                2、获取第一个字符,转成大写

            方式2:
                1、先获取第一个字符
                2、再获取除了第一个以外的字符
                3、把第一步的字符转成大写
                4、把第二部获取的字符转成小写
                5、把第三步和第四步的字符串拼接
                6、输出
*/

public class StringText2 {
    public static void main(String[] args) {
        String s = "HadoOPJava";

//        方法1
//        将字符串通过toLowerCase()方法全部转换为小写
//        String s1 = s.toLowerCase();
//        String s2 = s1.substring(0, 1).toUpperCase().concat(s1.substring(1));
//        System.out.println("字符串转换前"+s);//字符串转换前HadoOPJava
//        System.out.println("字符串转换后"+s2);//字符串转换后Hadoopjava

        //方法2
        //获取第一个字符
        String s1 = s.substring(0, 1);
        //获取除了第一个以外的字符
        String s2 = s.substring(1);
        //第一个字符转换为大写
        String s3 = s1.toUpperCase();
        //其他字符转换为小写
        String s4 = s2.toLowerCase();
        //两个字符串拼接
        String s5 = s3.concat(s4);
        //链式编程
        String concat = s.substring(0, 1).toUpperCase().concat(s.substring(1).toLowerCase());
        System.out.println("字符串转换前"+s);//字符串转换前HadoOPJava
        System.out.println("字符串转换后"+s5);//字符串转换后Hadoopjava
        System.out.println("字符串转换后"+concat);//字符串转换后Hadoopjava
    }
}

3.把数组中的数据按照指定个格式拼接成一个字符串

举例:int[] arr = {1,2,3}; 输出结果:[1, 2, 3]

/*
把数组中的数据按照指定个格式拼接成一个字符串
        举例:int[] arr = {1,2,3};    输出结果:[1, 2, 3]
        分析:
            1、定义一个空字符串
            2、先在字符串前面拼接一个"["
            3、遍历该int型数组,获取到每一个元素
            4、判断是否读到了最后一个元素,如果是,在后面拼接上一个"]"
            5、输出
*/
public class StringText3 {
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        //定义一个空字符串
        String s = "";
        //先在字符串前面拼接一个"["
        s += "[";
        //遍历该int型数组,获取到每一个元素
        for (int i = 0;i<arr.length;i++){
            //判断是否读到了最后一个元素,如果是,在后面拼接上一个"]"
            if (i == arr.length-1){
                s += arr[i];
                s += "]";
            }else{
                s += arr[i];
                s += ",";
            }
        }
        //输出
        System.out.println("数组转换为数组为"+s);
    }
}

3.字符串反转

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

import java.util.Scanner;

public class StringText5 {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入字符串");
        String s1 = sc.next();

        //方式一 ,倒序遍历字符串数组
        //将字符串转换为字符数组
        char[] c1 = s1.toCharArray();
        //定义一个空字符串
        String s2 ="";
        for (int i =c1.length-1;i>=0;i--){
          s2 += c1[i];
        }
        //输出
        System.out.println("字符串反转前:"+s1);
        System.out.println("字符串反转结果:"+s2);
//        //方式二 遍历反转
//        //将字符串转为字符数组
//        char[] c = s1.toCharArray();
//        for (int start = 0, end = c.length - 1; start <= end; start++, end--) {
//            char temp = c[start];
//            c[start] = c[end];
//            c[end] = temp;
//        }
//        String s2 = new String(c);
//        //输出
//        System.out.println("字符串反转前:"+s1);
//        System.out.println("字符串反转结果:"+s2);
    }
}

 4.统计大串中小串个数

/*
        统计大串中小串出现的次数
        举例:ehenaijavaxindeaijavawozhendehenaijavaxindeaijavawozhendehenaijavaxin”

        java 出现的次数

 */
public class StringText4 {
    public static void main(String[] args) {
        //创建大串字符串
        String s = "ehenaijavaxindeaijavawozhendehenaijavaxindeaijavawozhendehenaijavaxin";
        //定义count计数
        int count = 0;
        //创建小串字符串
        String s1 = "java";
        //找到小串在大串第一次出现的索引
        int i = s.indexOf(s1);
        if(i==-1){
            System.out.println("字符串中没有找到小串");
        }else{
            while(i!=-1){
                count++;
                //截取字符串
                //定义字符串截取位置变量j
                int j = i +s1.length();
                //第一次找到子字符串以后在此后截取字符串并覆盖大字符串,通俗的讲就是找到一个子字符串然后删除找到位置之前的字符
                s = s.substring(j);
                //同时实时更新新字符串中包含子字符串索引值,知道找不到为止
                i = s.indexOf(s1);
            }
        }
        System.out.println(s);//xin
        System.out.println(i);//-1
        System.out.println("输入大串中java出现次数:"+count);//输入大串中java出现次数:5
    }
}

 

标签:字符,Java,String,int,s1,System,22.1,字符串,类小
来源: https://www.cnblogs.com/lycc0210/p/15389533.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有