java day09

1、 基础案例

1. 训练案例1

1.1. 训练描述:【toString方法】

1、 需求说明:定义一个学生类,属性有姓名name、年龄age,提供空参、满参构造方法,setXxx()与getXxx()方法,在测试类中创建学生对象并为其进行初始化,打印该对象名。

1.2. 操作步骤描述

1. 创建Student类,该类中属性有姓名name、年龄age,提供空参、满参构造方法,setXxx()与getXxx()方法。

2. 创建测试类,在测试类中创建学生对象,给对象成员赋值。

3. 打印该对象名,发现打印结果是地址值,输出底层调用的是该对象的toString(),故而在Student类中重写toString()方法,打印该对象信息。

4. 再次打印该对象名称,查看打印结果。

public class Student {
private String name;
private int age;

    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 name, int age) {
        this.name = name;
        this.age = age;
    }
    @Override
    public String toString(){

        return name;
    }
}
public class Test01 {
    public static void main(String[] args) {
        Student student = new Student("aaa",18);
        System.out.println(student.getName());
        System.out.println(student.toString());

    }
}

2. 训练案例2

2.1. 训练描述:【String类】

1、 需求说明:模拟登陆,给三次机会,并提示还有几次。

2.2. 操作步骤描述

1. 定义两个字符串对象,用于存储已经存在的用户名和密码。

2. 键盘录入用户名和密码

3. 拿键盘录入的用户名和密码去跟已经存在的用户名和密码进行比较

如果内容相同,就提示登录成功

如果内容不同,就提示登录失败,并提示还有几次机会

public class Test02 {
    public static void main(String[] args) {
        String username = "admin";
        String password = "123456";


        for (int i = 3 ; i>=0; i--) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("username");
            String username1 = scanner.next();
            System.out.println("password");
            String password1 = scanner.next();
            if (username.equals(username1) && password.equals(password1)) {
                System.out.println("登录成功");
                break;
            } else {
                if (i == 0) {
                    System.out.println("你的帐号被锁定,请与管理员联系");
                } else {
                    System.out.println("提示登录失败,提示还有" + i + "次机会");
                }
            }
        }
    }

}

3. 训练案例3

3.1. 训练描述:【String类】

1、 需求说明:把数组中的数据按照指定个格式拼接成一个字符串(用String类来实现)

举例:int[] arr = {1,2,3};

输出结果:[1, 2, 3]。

3.2. 操作步骤描述

1. 定义一个int类型的数组

2. 写方法实现把数组中的元素按照指定的格式拼接成一个字符串

3. 调用方法

4. 输出结果

public class Test03 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};

        String a = arrayToString(arr);
        System.out.println(a);
    }

        public static String arrayToString(int[] arr){
            String s = "";
            s += '[';
            for (int i = 0; i < arr.length; i++) {
                if (i != arr.length-1) {
                    s += arr[i];
                    s += ',';
                } else {
                    s += arr[i];

                }
            }
            s += ']';
            return s;
        }
    }

4. 训练案例4

4.1. 训练描述:【String类】

1、 需求说明:字符串反转(用String类来实现)

举例:键盘录入”abc”

输出结果:”cba”。

4.2. 操作步骤描述

1. 键盘录入字符串数据

2. 写方法实现字符串数据的反转

把字符串倒着遍历,在把每一个得到的字符拼接成一个字符串

3. 调用方法

4. 输出结果

public class Test04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("shuru");
        String s = scanner.next();
        String a = reverse(s);
        System.out.println(a);

    }


    public static String reverse(String s) {
        String a = "";
        for (int i = s.length() - 1; i >= 0; i--) {
            a += s.charAt(i);

        }
        return a;
    }
}

5. 训练案例5

5.1. 训练描述:【StringBuilder类】

1、 需求说明:把数组中的数据按照指定个格式拼接成一个字符串(用StringBuilder类来实现)

举例:int[] arr = {1,2,3};

输出结果:[1, 2, 3]。

5.2. 操作步骤描述

1. 定义一个int类型的数组

2. 写方法实现把数组中的元素按照指定的格式拼接成一个字符串

3. 调用方法

4. 输出结果

public class Test05 {
    public static void main(String[] args) {


        //定义一个int类型的数组
        int[] arr={1,2,3};

        //写方法实现把数组中的元素按照指定的格式拼接成一个字符串
        String s1 = arrayToString(arr);  // 返回类型为string ,类型 变量 = 方法(参数)
        //调用方法

        //输出结果
        System.out.println(s1);
    }
        /*
         * 两个明确:
         * 		返回值类型:String
         * 		参数列表:int[] arr
         */
        public static String arrayToString ( int[] arr){

          StringBuffer s = new StringBuffer();
            s.append("[");
            for (int i = 0 ; i<arr.length;i++){

                if ( i <= 1 ){
                    s.append(arr[i]).append(", "); // s.append().append()
                }else {
                    s.append(arr[i]);
                }

            }
            s.append(']');
            String s1 = s.toString(); //把stringbuffer类型tostring为string类型的
            return  s1;



        }
    }

6. 训练案例6

6.1. 训练描述:【StringBuilder类】

1、 需求说明:字符串反转(用StringBuilder类来实现)

举例:键盘录入”abc”

输出结果:”cba”。

6.2. 操作步骤描述

1. 键盘录入字符串数据

2. 写方法实现字符串数据的反转

把字符串倒着遍历,在把每一个得到的字符拼接成一个字符串

3. 调用方法

4. 输出结果

/*
一、	需求说明:字符串反转(用StringBuilder类来实现)
举例:键盘录入”abc”
输出结果:”cba”。
public StringBuilder reverse():字符串本身进行反转
 */
public class Test06 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("shuru");
        String a = scanner.next();
        StringBuilder sb = new StringBuilder(a);
        StringBuilder sb2 = sb.reverse();
        System.out.println(sb2);


    }

}

2、 扩展案例

1. 训练案例1

1.1. 训练描述:【Scanner类、方法、String类】

1、 需求说明:实现用户注册、登陆功能;

1. 程序中使用一个长度为3的对象数组,存储用户的登录名和密码:

例如如下格式:

​登录名    密码      生日           爱好

zhangsan

1111

1998-03-15

旅游,唱歌

lisi

2222

2002-05-20

吃饭,睡觉,打豆豆

wangwu

3333

2001-07-28

看书,看电影,旅游

注册时,要判断数组是否已满,是:则禁止注册。

2. 循环为用户列出菜单:

1.注册     2.登陆     3.退出

3. 用户选择1,调用:registe()方法,执行注册流程;

用户选择2,调用:login()方法,执行登陆流程;

用户选择3,结束程序;

4. 编写方法:registe(),执行注册流程:

● 要求用户输入以下信息(信息无需校验):

​​​用户名:

​​​登录密码:

​​​出生日期:

​​​爱好:(多个爱好中间用逗号(中英文都可以)隔开)

5. 编写方法:login(),执行登陆流程:

● 请用户输入登录名、登陆密码;

● 使用登录名和密码进行验证;

通过:打印:这个用户的所有信息;

未通过:打印:用户名或密码错误!

1.2. 操作步骤描述

public class Ansewer07 {
    private static User[] userArray = new User[3];
    private static int index = 0;// 当前数组可存储的位置,如果等于userArray.length -1,说明用户已满,禁止注册

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("1.注册     2.登陆     3.退出");
            int op = sc.nextInt();
            switch (op) {
                case 1:
                    regist();
                    break;
                case 2:
                    login();
                    break;
                case 3:
                    System.out.println("谢谢使用,拜拜!");
                    System.exit(0);
                default:
                    break;
            }
        }
    }

    // 注册
    private static void regist() {
        // 验证用户是否已满
        if (index >= userArray.length) {
            System.out.println("用户已满,禁止注册!");
            return;
        }
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String userName = sc.next().trim();
        System.out.println("请输入登录密码:");
        String pwd = sc.next().trim();
        System.out.println("请输入确认密码:");
        String birthDay = sc.next().trim();
        System.out.println("请输入爱好(多个用逗号隔开):");
        String hobby = sc.next().trim();

        // 验证通过,写入到数组
        User user = new User(userName, pwd, birthDay, hobby);
        userArray[index] = user;
        // 将索引增1,以备下一次存储
        index++;
        // 成功提示
        System.out.println("注册成功!");
    }

    // 登录
    private static void login() {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入登录名:");
        String userName = sc.next();
        System.out.println("请输入密码:");
        String pwd = sc.next();

        // 验证
        for (int i = 0; i < userArray.length; i++) {
            if (userName.equals(userArray[i].getUsername()) && pwd.equals(userArray[i].getPassword())) {
                System.out.println("登录成功,以下是您的个人信息:");
                System.out.println("用户名:" + userArray[i].getUsername() + " , 密码:" + userArray[i].getPassword() + " ,出生日期:" + userArray[i].getBrithday()
                        + " ,爱好:" + userArray[i].getHobby());
                return;
            }else{System.out.println("登录失败,用户名或密码错误!");}
        }
        System.out.println("登录失败,用户名或密码错误!");

    }
}
public class test07 {
    public static User[] UserArry = new User[3];
    public static int index = 0 ;

    public static void main(String[] args) {


        while (true) {
            System.out.println("1.注册 2.登录 3.退出");
            Scanner scanner = new Scanner(System.in);

            int i = scanner.nextInt();

            switch (i) {
                case 1:
                    registe();
                    break;

                case 2:
                    login();
                    break;

                case 3:
                    break;

            }

        }
    }
    public static void registe(){

        if(index >= UserArry.length) {
            System.out.println("用户已满,停止注册");
            return;
        }


            System.out.println("请输入用户名");
            Scanner scanner1 = new Scanner(System.in);
            String username = scanner1.next().trim();
            System.out.println("请输入密码");
            String password = scanner1.next().trim();
            System.out.println("请输入生日");
            String birthday= scanner1.next().trim();
            System.out.println("请输入兴趣");
            String hobby= scanner1.next().trim();
            User user = new User(username, password, birthday, hobby);
            UserArry[index] = user;
            index++;



    }

    public static  void login(){

        System.out.println("请输入用户名");
        Scanner scanner1 = new Scanner(System.in);
        String username = scanner1.next().trim();
        System.out.println("请输入密码");
        String password = scanner1.next().trim();


        for ( int i = 0 ; i < UserArry.length ; i++){


        if( username.equals(UserArry[i].getUsername()) && password.equals(UserArry[i].getPassword())){
            System.out.println("登录成功");
            return;
        }else {
            System.out.println("输入有误");
            return;
        }

        }



        }
}
public class User {
    String username;
    String Password;
    String Brithday;
    String hobby;

    public User(String username, String Password, String Brithday, String hobby) {
        this.username = username;
        this.Password = Password;
        this.Brithday = Brithday;
        this.hobby = hobby;
    }

    public User() {
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String Username) {
        this.username = Username;
    }

    public String getPassword() {
        return Password;
    }

    public void setPassword(String Password) {
        this.Password = Password;
    }

    public String getBrithday() {
        return Brithday;
    }

    public void setBirthDay(String Brithday) {
        this.Brithday = Brithday;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }


}

2. 训练案例2

2.1. 训练描述:

分析以下需求,并用代码实现

​1.键盘录入一个大字符串,再录入一个小字符串

​2.统计小字符串在大字符串中出现的次数

​3.代码运行打印格式:

​​请输入大字符串:woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma

​​请输入小字符串:heima

​​控制台输出:小字符串heima,在大字符串woaiheima,heimabutongyubaima,wulunheimahaishibaima,zhaodaogongzuojiushihaoma中共出现3次

2.2. 操作步骤描述

public class Test08 {
    public static void main(String[] args) {
        String big = "bbbbba";
        String small = "a";
        getcount(big,small);

    }
    public static void getcount(String big, String small){

        int count = 0;
        for (int idex = 0 ; idex <big.length(); idex++) {
            if (big.indexOf(small, idex) == -1) {


            } else {
                System.out.println(count);
                count++;
            }
        }


    }

}

3. 训练案例3

3.1. 训练描述:

分析以下需求,并用代码实现

​1.键盘录入一个源字符串由字符串变量scrStr接收

​2.键盘录入一个要删除的字符串由字符串变量delStr接收

​3.要求

​​删除该字scrStr符串中的所有delStr字符串(最终的字符串中不能包含delStr),要求打印删除后的结果以及删除了几个delStr字符串

​4.代码运行打印格式:

​​请输入源字符串:java woaijava,i like jajavava i enjoy java

​​请输入要删除的字符串:java

​​控制台输出结果:源字符串中总共包含:5 个java 删除java后的字符串为: woai,i like  i enjoy

3.2. 操作步骤描述

4. 训练案例4

4.1. 训练描述:

分析以下需求,并用代码实现

​1.键盘录入一个字符串

​2.将该字符串变成字符数组(不能使用toCharArray()方法)

​3.将字符数组中的所有大写字母变成小写字母(不能使用toLowerCase()方法)

​4.如果第一位和最后一位的内容不相同,则交换

​5.将字符数组中索引为偶数的元素变成'~'

​6.打印数组元素的内容

4.2. 操作步骤描述

5. 训练案例5

5.1. 训练描述:

分析以下需求,并用代码实现

​1.定义String getStr(char[] chs)方法

​​功能描述:获取长度为5的随机字符串,字符串由随机的4个大写英文字母和1个0-9之间(包含0和9)的整数组成

​2.定义main方法,方法内完成:

​​(1)定义长度为26,元素值为26个大写英文字母的数组chs

​​(2)传递数组chs调用getStr(char[] chs)方法,获取返回值,并在控制台打印返回值

5.2. 操作步骤描述

6. 训练案例6

6.1. 训练描述

根据传入的字符串,获取指定的字符串

6.2. 操作步骤描述

1.定义如下方法public static String getPropertyGetMethodName(String property)

(1)该方法的参数为String类型,表示用户给定的成员变量的名字,返回值类型为String类型,返回值为成员变量对应的get方法的名字

(2)如:用户调用此方法时给定的参数为"name",该方法的返回值为"getName"

2.定义如下方法public static String getPropertySetMethodName(String property)

​(1)该方法的参数为String类型,表示用户给定的成员变量的名字,返回值类型为String类型,返回值为成员变量对应的set方法的名字

​(2)如:用户调用此方法时给定的参数为"name",该方法的返回值为"setName"

7. 训练案例7

7.1. 训练描述:

1、 需求说明:请用户输入一个“QQ号码”,我们来判断这个QQ号码是否正确。

要求:使用方法来完成判断功能。

7.2. 操作步骤描述

1. 建立MainApp类,并包含main()方法。

2. 在MainApp类中定义方法:checkQQ (String qq)

方法内实现验证。验证规则:

1) 必须是5—12位数字;

2) 首位不能是0;

3. 在main()方法中,请用户输入QQ号码

4. 调用checkQQ (String qq)方法进行判断,并打印判断结果。

8. 训练案例8

8.1. 训练描述:

1、 需求说明:定义如下字符串:

String str = “javajfiewjavajfiowfjavagkljjava”;

2、 请分别定义方法统计出:

1. 字符串中:字符j的数量

2. 字符串中:字符串java的数量

8.2. 操作步骤描述

1. 定义MainApp类,包含main()方法;

2. 在MainApp类中,定义以下两个方法:

1) 可以统计一个字符串中,某个字符出现的次数;

public static int countChar(String str,charc)

2) 可以统计一个字符串中,某个字符串出现的次数;

public static int countString(String str,String s)

3. 请实现方法,并在main()方法中分别调用这两个方法进行统计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值