• Java常用类之String类练习


    1.编程. 已知字符串:”this is a test of java”.
    按要求执行以下操作:
    (1) 统计该字符串中字母s出现的次数
    (2) 取出子字符串”test”
    (3) 将本字符串复制到一个字符数组Char[] str中.
    (4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
    (5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
    (6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的额英文单词,并输出到控制台

    代码:

    package day11Homework;
    
    import java.util.Arrays;
    
    public class Test1 {
        public static void main(String[] args){
            String string="this is a test of java";
    
    //     (1) 统计该字符串中字母s出现的次数
            //first
            char[] c=string.toCharArray();
            int count=0;
            for (char d : c) {
                if(d=='s'){
                    count++;
                }
            }
            System.out.println("s出现的次数"+count);
            //second
            String[] strs1=string.split("s");
            int count2=0;
            count2=strs1.length-1;
            System.out.println("s出现的次数"+count2);
            //third
    
    //     (2) 取出子字符串"test"
            System.out.println("截取test:"+string.subSequence(string.indexOf("t",1), string.lastIndexOf("t")+1));
    //     (3) 将本字符串复制到一个字符数组Char[] str中.
            char[] c2=string.toCharArray();
    //     (4) 将字符串中每个单词的第一个字母变成大写, 输出到控制台。
            String[] strs2=string.split(" ");
            for(int i=0;i<=strs2.length-1;i++){
                //方法一:
                //strs2[i]=strs2[i].replaceFirst(String.valueOf(strs2[i].charAt(0)),String.valueOf(strs2[i].charAt(0)).toUpperCase());
                //方法二:
                strs2[i]=Character.toUpperCase(strs2[i].charAt(0))+strs2[i].substring(1);
            }
            System.out.println(Arrays.toString(strs2));
    //     (5) 用两种方式实现该字符串的倒叙输出。(用StringBuffer和for循环方式分别实现)
            StringBuffer stringBuffer=new StringBuffer("this is a test of java");
            System.out.println(stringBuffer.reverse());
            //for
            for(int i=string.length()-1;i>=0;i--){
                System.out.print(string.charAt(i));
            }
            System.out.println();
    //     (6) 将本字符串转换成一个字符串数组,要求每个数组元素都是一个有意义的英文单词,并输出到控制台
            String[] strs3=string.split(" ");
            System.out.println(Arrays.toString(strs3));
        }
    }
    

    运行结果:
    这里写图片描述

    2 .如下字符串:
    01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21

    分割出每个人的信息,样式如下:
    *01 张三 20
    *02 李四 18
    *…..

    *创建Student类,属性:学号 姓名 年龄
    1将这些Student对象放进数组中
    2.查询里面有没有叫田七的学生如果存在则打印学生的具体信息(封装成方法,键盘输入姓名)
    3.计算所有学生的平均年龄,最大年龄,最小年龄
    4.如果存在名字叫张三的将名字改为张兵

    代码:

    学生类

    
    public class Student {
        private String xueHao;
        private String name;
        private int age;
    
        public String getXueHao() {
            return xueHao;
        }
        public void setXueHao(String xueHao) {
            this.xueHao = xueHao;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
    
        public Student() {}
    
        public Student(String xueHao,String name,int age){
            this.xueHao=xueHao;
            this.name=name;
            this.age=age;
        }
    }
    

    测试类:

    import java.util.*;
    public class Test3 {
        public static void main(String[] args){
            Scanner input=new Scanner(System.in);
            String str="01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21";
            String[] strs=str.split("[#*]");
            System.out.println("1.按要求打印如下:");
            for(int i=0;i<strs.length;i+=3){
                System.out.print(strs[i]+" "+strs[i+1]+" "+strs[i+2]);
                System.out.println();
            }
    
            //建立学生数组
            Student[] arr=new Student[strs.length/3];
            int count=0;
            for(int i=0;i<arr.length;i++){
                arr[i]=new Student(strs[count],strs[count+1],Integer.parseInt(strs[count+2]));
                count+=3;
            }
            System.out.println("2.查询里面有没有叫田七的学生如果存在则打印学生的具体信息:");
            System.out.println("请输入学生姓名:");
            String name=input.next();
    
            for(int i=0;i<arr.length;i++){
                if(name.equals(arr[i].getName())){
                    System.out.print(arr[i].getXueHao()+" "+arr[i].getName()+" "+arr[i].getAge());
                }
            }
            System.out.println();
            //3.计算所有学生的平均年龄,最大年龄,最小年龄
            System.out.println("3.计算所有学生的平均年龄,最大年龄,最小年龄:");
            int ageSum=0;
            int ageMax=arr[0].getAge();
            int ageMin=arr[0].getAge();
            for(int i=0;i<arr.length;i++){
                ageSum+=arr[i].getAge();
                ageMax=ageMax>arr[i].getAge()?ageMax:arr[i].getAge();
                ageMin=ageMin<arr[i].getAge()?ageMin:arr[i].getAge();
            }
            System.out.println("所有学生的平均年龄:"+ageSum/arr.length);
            System.out.println("所有学生中的最大年龄:"+ageMax);
            System.out.println("所有学生中的最小年龄:"+ageMin);
            //4.如果存在名字叫张三的将名字改为张兵
            System.out.println("4.如果存在名字叫张三的将名字改为张兵:");
            for(int i=0;i<arr.length;i++){
                String temp="张三";
                if(temp.equals(arr[i].getName())){
                    arr[i].setName("张兵");
                    System.out.println("arr["+i+"]="+arr[i].getName());
                }
            }
    
            input.close();
        }
    }
    

    运行结果:
    这里写图片描述

  • 相关阅读:
    vscode调整字体大小
    ML .NET 异常情况检测
    C#使用Elasticsearch(NEST)
    C#使用Elasticsearch获得原始查询(NEST)
    使用Lazy使ConcurrentDictionary的GetOrAdd方法线程安全
    XML转Json 设置指定节点为数组
    分支定界法
    对偶理论
    单纯形法
    连续变量的微分熵
  • 原文地址:https://www.cnblogs.com/TCB-Java/p/6797646.html
Copyright © 2020-2023  润新知