API_Day02_StringExcise

此代码片段展示了两个Java程序。第一个程序随机生成一个包含数字和字母的四位验证码,并提示用户输入,验证用户输入是否与生成的验证码一致。第二个程序模拟用户登录,通过数组存储用户对象,用户输入用户名和密码后,程序会检查是否存在匹配的用户及密码。
摘要由CSDN通过智能技术生成

练习1:判断回文String line = “上海自来水来自海上”;
练习2:统计"123" 在 "123abc124123"中出现的次数
练习3:截取网址中的域名,即baidu
练习4:根据文件名判断是否为png格式的图片
练习5:统计1a23b4c567d89中包含多少个字母,多少个数字
练习1:判断回文String line = “上海自来水来自海上”;

练习1:判断回文String line = “上海自来水来自海上”;

       //练习1:判断回文String line = "上海自来水来自海上";
        String line = "上海自来水来自海";
        System.out.println(line);
        for (int i = 0; i < line.length(); i++){
            if (line.charAt(i) != line.charAt(line.length() - 1 -i)){
                System.out.print("不");break;
            }
        }
        System.out.println("是回文");
    }

在这里插入图片描述

练习2:统计"123" 在 "123abc124123"中出现的次数

  //练习2:统计"123""123abc124123"中出现的次数
        String str = "123abc124123";
        String str1 = "123";
        int count = 0;
        int index = 0;
        /*判断str中是否出现包含指定字符串str1,下标变化,
        当找到一个str1,返回str1所在下标,之后从该下标位置往后找。
        重新给循环迭代因子赋值。*/
        while((index = str.indexOf("123",index)) != -1){
                count++;
                index++;
        }
        System.out.println(count);//2

练习3:截取网址中的域名,即baidu

  //练习3:截取网址中的域名,即baidu,使用substring(int beginIndex,int endIndex)返回子字符串
        String url = "www.baidu.com.huacit.cn";
        int start = url.indexOf(".");
        int end = url.indexOf(".",start+1);
        System.out.println(url.substring(start+1,end));

运行结果:
在这里插入图片描述

练习4:根据文件名判断是否为png格式的图片

 /*练习4:根据文件名判断是否为png格式的图片 
 使用boolean startsWith(String str); boolean endsWith(String str);*/

     String photo = "123.jpg";
        if (photo.endsWith(".png")){
            System.out.println("是.png图片");
        }else{
            System.out.println("不是.png图片");
        }

练习5:统计1a23b4c567d89中包含多少个字母,多少个数字

//练习5:统计1a23b4c567d89中包含多少个字母,多少个数字
        String str3 = "1a23b4c567d89";
        int letters = 0;//记录字母个数
        int nums = 0;
        for (int i = 0; i < str3.length(); i++){
            if (str3.charAt(i) >= '0' && str3.charAt(i) <= '9'){
                nums++;
            }else if (str3.charAt(i) >= 'A' && str.charAt(i) <= 'Z' || str3.charAt(i) >= 'a' && str3.charAt(i) <= 122){
                letters++;
            }
        }
        System.out.println("数字有:" + nums + "个");
        System.out.println("字母有:" + letters + "个");

完成以下练习:
提示:从控制台获取字符串调用next()或nextLine()方法

  1. 随机生成一个4位验证码(数字和字母的组合),然后输出到控制台并提示用户输入该验证码.
    只要用户输入正确(无论大小写都算),就输出:验证码正确,否则输出:验证码错误。
package JAVA_API.num3_String.StringExcise;

import java.util.Random;
import java.util.Scanner;

/**
 * 从控制台获取字符串调用next()或nextLine()方法
 *  1. 随机生成一个4位验证码(数字和字母的组合),然后输出到控制台并提示用户输入该验证码.
 *  只要用户输入正确(无论大小写都算),就输出:验证码正确,否则输出:验证码错误。
 * @author yyc
 * 2021/9/7 22:50
 */
public class Test2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Random random = new Random();
        char[] ch = new char[4];
        for (int i = 0; i < ch.length;i++) {
            int a = random.nextInt(123 - 48) + 48;
            if (a > 57 && a < 65 || a > 90 && a < 97) {
                i--;
                continue;
            } else {
                ch[i] = (char) a;
            }
        }
        //static String valueOf(int);将基本数据类型转换为字符串类型.
        String str = String.valueOf(ch);
        System.out.println("验证码为:" + str);
        System.out.println("请输入四位验证码:");
        String userStr = new Scanner(System.in).nextLine();
        //引用类型想要进行对象内容的比较必须在对象所在类重写equals()方法。
        if (userStr.toLowerCase().equals(str.toLowerCase())  || userStr.toUpperCase().equals(str.toUpperCase())){
            System.out.println("验证码正确");
        }else{
            System.out.println("验证码不正确");
        }
    }
}

在这里插入图片描述

方式二:

package JAVA_API.num3_String.StringExcise;

import java.util.Random;
import java.util.Scanner;

/**
 *  * 从控制台获取字符串调用next()或nextLine()方法
 *  *  1. 随机生成一个4位验证码(数字和字母的组合),然后输出到控制台并提示用户输入该验证码.
 *  *  只要用户输入正确(无论大小写都算),就输出:验证码正确,否则输出:验证码错误。
 * @author yyc
 * 2021/9/8 9:59
 */
package JAVA_API.num3_String.StringExcise;

import java.util.Random;
import java.util.Scanner;

/**
 *  * 从控制台获取字符串调用next()或nextLine()方法
 *  *  1. 随机生成一个4位验证码(数字和字母的组合),然后输出到控制台并提示用户输入该验证码.
 *  *  只要用户输入正确(无论大小写都算),就输出:验证码正确,否则输出:验证码错误。
 * @author yyc
 * 2021/9/8 9:59
 */
public class Test3 {
    public static void main(String[] args) {
        /*定义验证码池子包含所有数字和所有英文大小写*/
        String str = "0123456789qwertyuiopasdfghjklmnbvcxzQWERTYUIOPLKJHGFDSAZXCVBNM";
        /*声明随机数对象引用*/
        Random random = new Random();
        int index = 0;
        /*用于拼接验证码*/
        String code = "";
        for (int i = 0; i < 4;i++){
            /*下标生成范围在0-str.length之间*/
            index = random.nextInt(str.length());
            /*拼接符合的验证码。*/
            code += str.charAt(index);
        }
        /*输出验证码*/
        System.out.println(code);
        /*提示用户输入验证码*/
        System.out.println("请输入验证码:");
        /*定义变量接收用户控制台输入的验证码*/
        String inputCode = new Scanner(System.in).nextLine();
        /*进行判断,因为控制台可能不输入,所以最好用一个已知存在的引用调用equalsIngorCase(String str)方法。*/
        if (code.equalsIgnoreCase(inputCode)){
            System.out.println("验证码正确!");
        }else{
            System.out.println("验证码错误!");
        }

    }
}


2.模拟用户登录。
定义用户类,属性为用户名username和密码password。
使用数组存储多个用户对象。
让用户从控制台输入用户名和密码,与数组中的用户信息进行对比,匹配成功登录成功,否则登录失败。
登录失败分两种情况:当用户名错误,提示没有该用户;当密码错误时,提示密码有误。

package JAVA_API.num3_String.StringExcise;

import java.util.Scanner;

/**
 * * 2.模拟用户登录。
 *  * 定义用户类,属性为用户名username和密码password。
 *  * 使用数组存储多个用户对象。
 *  * 让用户从控制台输入用户名和密码,与数组中的用户信息进行对比,匹配成功登录成功,否则登录失败。
 *  * 登录失败分两种情况:当用户名错误,提示没有该用户;当密码错误时,提示密码有误。
 * @author yyc
 * 2021/9/8 10:29
 */
public class Login1 {
    public static void main(String[] args) {
        User1[] users = new User1[2];
        users[0] = new User1("Daisy","123abc");
        users[1] = new User1("Rose" , "abc123");
        System.out.println("请输入用户名:");
        String username = new Scanner(System.in).nextLine();
        System.out.println("请输入用户密码:");
        String password = new Scanner(System.in).nextLine();
        for (int i = 0; i < users.length;i++){
            //判断用户名是否正确
            if (username.equals(users[i].getUsername())){
                //判断用户密码是否正确
                if (password.equals(users[i].getPassword())){
                    System.out.println("登陆成功!");
                }else{
                    System.out.println("登录失败,密码错误!");
                }
                break;
            }
            //如果i==users.length-1则说明用户不存在
            if (i == users.length - 1){
                System.out.println("登陆失败,用户不存在!");
            }
        }
    }
}
class User1{
    //声明用户属性
    private String username;
    private String password;
    //提供无参构造
    public User1() {
    }
    //提供有参构造
    public User1(String username, String password) {
        this.username = username;
        this.password = password;
    }
    //提供公有getXXX()方法
    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值