两个String案例

编程入门 行业动态 更新时间:2024-10-22 14:34:43

两个String<a href=https://www.elefans.com/category/jswz/34/1770649.html style=案例"/>

两个String案例

我的思考:

用户名和密码可以分别用一个字符串保存,再与输入的字符串分别比较,先比较用户名,成功后再比较密码,注意比较字符串不能直接用 ' = ' ,而是要用String类的方法实现。

我的代码:

//User.javapackage com.stringlearning;public class User {private String name;private String code;public User() {}public User(String name, String code) {this.name = name;this.code = code;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}
}
//Run.javapackage com.stringlearning;import java.util.Scanner;public class Run {public static void run(){User user = new User("itheima","123456");int count = 2;while(true){System.out.println("请用户输入你的用户名:");Scanner sc = new Scanner(System.in);String name = sc.next();System.out.println("请用户输入你的密码:");String code = sc.next();if(user.getName().equals(name) &&user.getCode().equals(code)){System.out.println("欢迎进入系统!");break;}else{if(count == 0){System.out.println("请等待30秒在输入");break;}System.out.println("用户名或密码错误,请重试");count--;}}}
}
//Test.javapublic class Test {public static void main(String[] args) {Run r = new Run();r.run();}
}

反思:

上面的代码过于冗余了,增添了很多不必要的东西,像系统保存的字符串根本不需要单独创建一个类描述,直接用 " "表示即可。还有循环内部也太过复杂,完全不需要计数器count,直接for循环3次,中途达成条件退出就行了。


改进代码:

package com.stringdemo;import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);for (int i = 0; i < 3; i++) {System.out.println("请输入用户名");String name = sc.next();System.out.println("请输入密码");String code = sc.next();boolean flag = judge(name,code);if(flag == true) {System.out.println("欢迎进入系统");break;}else{System.out.println("用户名或密码错误,请重试");}}}public static boolean judge(String name,String code){String logname = "itheima";String logcode = "123456";return name.equals(logname) && code.equals(logcode);}
}

案例二

我的思考:

该题的关键在于随机验证码的设置,有3种码:随机数字、随机大写字母、随机小写字母。

所以要想每一位随机地出现这3种不同的情况,需要Random随机值。

每一位是什么类型的数据确定后,接下来就是随机索引该位的值,然后用初始字符串+=串起来。

我的代码:

public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入验证码的位数");int num = sc.nextInt();String rs = code(num);System.out.println("验证码是:"+ rs);}public static String code(int num){String rs = "";Random r = new Random();for (int i = 0; i < num; i++) {int n = r.nextInt(3);switch(n){case 0: //数字rs += r.nextInt(10);break;case 1: //大写字母rs += (char)('a'+r.nextInt(26));break;case 2:rs += (char)('A'+r.nextInt(26));break;}}return rs;}
}

更多推荐

两个String案例

本文发布于:2023-11-15 23:04:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1608585.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:案例   两个   String

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!