个人简介
- 大家好,我是翰慧腾。一名正在努力学JAVA的大一小白,本文章为初学的笔记,希望各位多多指教。💙
- 欢迎点赞+收藏+留言💜
- 二三月做的事情,七八月自有答案🧡
上一篇文章我们对String、StringBuilder类进行了总结,提到了很多常用的方法。本篇将会对上次所学习的方法进行实践操作。学以致用是我们每个程序员的必备能力。
建议先认真阅读上一篇文章后再来操作该篇。
案例1:String类开发验证码功能
需求:随机产生一个五位数验证码,每位可能是数字、大写字母、小写字母
package Stickto;
import java.util.Random;
public class String_case {
public static void main(String[] args) {
// TODO 自动生成的方法存根
String code="";//定义一个空字符,用于后期存放随机产生的字符
//定义可能出现的字符信息
String d="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random s=new Random();//创建Random类对象,下方我会补充一些Random类知识
for(int i=0;i<5;i++) {
int ss=s.nextInt(d.length());//调用Random类方法,详解见下方
char sss=d.charAt(ss);//上面刚介绍过的String类charAt方法,用于获取索引处的字符
code+=sss;//把获取到的字符添加到准备的空字符串中
}
System.out.println(code);
}
*补充:
Random类:该类是java.util包下,所以用的时候需要导包。下面介绍几个常用方法
nextInt方法:用于产生一个随机的int型数据。
API文档:
源码:
public int nextInt(int bound) {
if (bound <= 0)
throw new IllegalArgumentException(BAD_BOUND);
int r = next(31);
int m = bound - 1;
if ((bound & m) == 0) // i.e., bound is a power of 2
r = (int)((bound * (long)r) >> 31);
else { // reject over-represented candidates
for (int u = r;
u - (r = u % bound) + m < 0;
u = next(31))
;
}
return r;
}
案例二:模拟用户登录功能
需求:模拟用户登录功能,最多只给三次机会
package Stickto;
import java.util.Scanner;
public class String_case1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请设置你的登录账号:");
String number=sc.next();
System.out.println("请设置你的登录密码:");
String password=sc.next();
System.out.println("欢迎进入系统");
int i=0;
for( i=0;i<3;i++) {
System.out.println("请输入登录账号:");
String Number=sc.next();
if(Number.equals(number)) {
System.out.println("请输入登录密码:");
String Password=sc.next();
if(Password.equals(password)) {
System.out.println("登录成功,欢迎进入系统");
break;
}
else System.out.println("密码有误,请重新登录.您还剩余"+(2-i)+"次机会");
}
else System.out.println("账号有误,请重新输入。您还剩余"+(2-i)+"次机会");
}
if(i==3) {
System.out.println("您的三次机会已用完,登录失败");
}
}
}
案例三:将输入的手机号进行屏蔽处理,只能显示前三位和最后四位,保护客户隐私。
package Stickto;
import java.util.Scanner;
public class String_case2 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入您的手机号:");
String phone=sc.next();
String there=phone.substring(0,3);//substring方法用于截取字符串。截取前三位
String four=phone.substring(7);
System.out.println(there+"****"+four);
//注意截取字符串的时候索引值从0开始
}
}
案例四:打印整型数组内容
package Stickto;
public class StringBuilder_case {
public static void main(String[] args) {
int[] arr= {1,2,3,4,5};
System.out.println(ss(arr));
}
//定义一个方法,能够将数组返回一个字符串
public static String ss(int[] arr) {
StringBuilder s=new StringBuilder();
s.append("[");
for(int i=0;i<arr.length;i++) {
if(i==arr.length-1)
s.append(arr[i]);
else s.append(arr[i]).append(",");
}
s.append("]");
String s1=s.toString();
return s1;
}
}
声明:以上案例均来自黑马程序员。