java基础练习DEMO

发布于:2025-04-18 ⋅ 阅读:(16) ⋅ 点赞:(0)
  • 模拟用户登陆的方式
/*- 模拟用户登录。
        - 定义用户类,属性为用户名和密码。
        - 使用集合存储多个用户对象。
        - 录入用户和密码,对比用户信息,匹配成功登录成功,否则登录失败。
        - 登录失败时,当用户名错误,提示没有该用户。
        - 登录失败时,当密码错误时,提示密码有误。
        - 代码实现,效果如图所示:*/

import java.util.ArrayList;
import java.util.Scanner;

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

        User us = new User();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名:");
        us.setName(sc.nextLine());
        System.out.println("请输入密码:");
        us.setPsd(sc.nextLine());

        ArrayList<User> al = new ArrayList<User>();

        al.add(new User("康熙", "123"));
        al.add(new User("乾隆", "103"));
        al.add(new User("嘉靖", "143"));
        al.add(new User("顺治", "153"));
        int count=0;
        for (int i = 0; i < al.size(); i++) {
            if (al.get(i).getName().equals(us.getName())) {
                if (al.get(i).getPsd().equals(us.getPsd())) {
                    System.out.println("登录成功");
                    break;
                } else {
                    System.out.println("密码错误");
                    break;
                }
            } else {
                count++;
            }
        }
        if (count == al.size()) {
            System.out.println("登录名错误");
        }
    }
}
  • 验证扣扣号登陆方式
/*
最主要的是在验证是不是数字这里????????????
- 键盘录入QQ号码,验证格式的正确性。
        - 必须是5—12位数字。
        - 0不能开头。

        - 代码实现,效果如图所示:*/

import java.util.Scanner;

public class Demo34String {
    public static void main(String[] args) {
//        1.键盘录入一个qq号码,字符串类型
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个QQ号:");
        String qq = sc.nextLine();
//        2.条用checkQQ(String qq)方法内实现验证
        boolean isOK = checkQQ(qq);
//        3.打印验证的结果
        System.out.println("这个QQ号码是否正确" + isOK);


    }

    private static boolean checkQQ(String qq) {
//        1.验证字符串的长度5-12位之间;
        if (qq.length() < 5 || qq.length() > 12) {
            return false;
        }
//       2.验证首位字符不能是字符0,只能是1-9
        if (qq.charAt(0) == '0') {
            return false;
        }
//        3.验证字符串的每个字符都必须是数字字符0-9之间的字符
        for (int i = 0; i < qq.length(); i++) {
            char ch = qq.charAt(i);
            //判断字符是否在0-9之间
            if (ch < '0' || ch > '9') {
                //说明QQ号码中含有非数字字符
                return false;
            }
        }
        //上述验证都通过了,就说明你的QQ号码是正确的
        return true;
    }
}
  • 用来进行筛选字母和数字的经典案例
/*
* 编写一个java编程,提示用户输入一串字符串,要求字符串必须讯在字母.
* 1.若不符合要求免责提示用户重新输入直至符合要求为止
* 2.若符合要求,则判断字符串中大写字母出现次数并打印
* */
import java.util.Scanner;
/*

分析:
1.创建键盘录入对象
2.定义死循环  while(true)
3.接收键盘录入的内容,是一个字符串
    定义一个标记 false
    使用fori循环遍历这个字符串
    取出来每一个字符进行判断
4.判断:直接判断就行
     键盘录入的内容是不是字符串?
     是字符串就进入内层判断,包含多少大写字母;
     
     判断标记,为正确的话就进入输出大写字母的个数
              错误的话,就进入下一次循环.

 */
public class Test01 {
    public static void main(String[] args) {

//        创建键盘录入对象
        Scanner sc = new Scanner(System.in);
//        使用while循环进入死循环
        while (true) {
            System.out.println("请输入一个带字母的字符串:");
//            接收键盘录入
            String s = sc.nextLine();
            int count = 0;
            boolean flag = false;
            for (int i = 0; i < s.length(); i++) {
                char c = s.charAt(i);
                if (c >= 'a' && c < 'z' || c >= 'A' && c <= 'Z') {
//                    统计一下大写字母有多少个?
                    if (c > 'A' && c <= 'z') {
                        count++;
                    }
                    flag = true;
                }
            }
            if (flag == true) {
                System.out.println("输入的" + s + "中含有的大写字母的个数为" + count + "个");
                break;
            } else {
                System.out.println("输入错误,请输入一个带字母的字符串");
            }
        }
    }
}
  • 打印随机验证码
/*
随机验证码。

        - 随机生成十组六位字符组成的验证码。
        - 验证码由大小写字母、数字字符组成。
*/

import java.util.Random;

public class Demo02RandomDemo03 {
    public static void main(String[] args) {
//        1.使用数组创建一个字典,包含大小写字母、数字字符
        char[] arr = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
                'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
                'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
                'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
                'w', 'x', 'y', 'z'};

//       2. 创建随机数对象
        Random r = new Random();

//        3.定义一个可以进行10次的循环
        for (int i = 0; i < 10; i++) {
//             6. 定义一个空字符串,用来连接
            String str = "";
//            4.定义一个循环可以打印6个验证码
            for (int i1 = 0; i1 < 6; i1++) {
//                5.每次打印一个验证码,产生一个随机数
                int num = r.nextInt(arr.length);
                str = str + arr[num];

            }
//            7.每循环一次打印一次.
            System.out.println(str);
        }
    }
}

  • 三个值获取较大值和较小值的方法之三元表达式
public static int getMax(int a, int b, int c) {
        int max = a > b ? (a > c ? a : c) : (b > c ? b : c);
        return max;

    }

    public static int getMin(int a, int b, int c) {
        int min = a < b ? (a < c ? a : c) : (b < c ? b : c);
        return min;
    }
  • 猜数字游戏
import java.util.Random;
import java.util.Scanner;
//导入包
public class Cai_Shu_Zi {
    public static void main(String[] args) {
        //在显示屏上输出一句话让你输入数字:
        System.out.println("请输入你猜的数字:");
        //使用Scanner对象,并导入
        Scanner sc = new Scanner(System.in);
        //接收你键盘录入的数字把这个数字给num
        int num= sc.nextInt();
        //把这个值给一个方法
        caishuzi(num);
    }

    private static void caishuzi(int num) {
        //创建Random对象,并导入
        Random r = new Random();
        //系统产生一个随机数
        int number = r.nextInt(100) + 1;
        //System.out.println(number);
        //创建Scanner对象,
        Scanner sc = new Scanner(System.in);
        //死循环
        while(true) {
            //你猜的数比随机数大,你猜大了.
            if (num > number) {
                System.out.println("你猜大了,请重新猜一个:");
                //再次接收你键盘录入的数字,把这个数字给num
                num = sc.nextInt();

            } else if (num < number) {
                System.out.println("猜小了,请重新猜一个:");
                //再次接收键盘录入的数字.
                num = sc.nextInt();
            } else {
                System.out.println("恭喜你猜对了!产生的随机数是:" + num);
               break;
            }
        }
    }
}

  • 打印99乘法表
public class chengfabiao99 {
    public static void main(String[] args) {
        for (int i = 1; i <= 9 ; i++) {
            for (int j = 1; j <=i ; j++) {
                System.out.print(i+"*"+j+"="+i*j+"\t");
            }
            System.out.println();
        }
    }
}
//总结:
//当打印倒三角时需要改变初始化值;让j=i
//当打印正三角时需要改变比较值.让j<=i
  • 求0~100的质数
public class Demo01Ffor {
    //求0到100之内的质数
    public static void main(String[] args) {
        //定义一个标志
        boolean f;
        //进入循环
        int i=0;
        int sum = 0;
        for( int x=2;x<=100;x++){
            //定义标志
            f = true;
            //进入内循环
            for(int j=2;j<x-1;j++){
                /* 用x值与j值依次模,如果x%j==0时,就会进入if语句中,
                f标记变成false,退出本次循环.
                  */

                if(x%j==0){
                    f = false;
                    break;
                }
            }
            //当标记为true时,就是得到了质数.
            if(f){
                i++;
                sum = sum+x;
                System.out.print(x);
                System.out.println("------------------");

            }
        }
        System.out.println(i);
        System.out.println(sum);
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到