第1题
随机验证码。
随机生成十组六位字符组成的验证码。
验证码由大小写字母、数字字符组成。
代码实现,效果如图所示:
开发提示:
使用字符数组保存原始字符,利用Random类生成随机索引。
将十组验证码放到集合中
用Iterator迭代器遍历集合
package test01;
import java.util.*;
/**
* @author yhm
* @create 2020-07-16 15:17
*/
public class Test {
public static void main(String[] args) {
char[] arr = new char[26 + 26 + 10];
//使用字符数组保存原始字符
for (int i = 0; i < arr.length; i++) {
if (i < 10) {//前10个放数字
arr[i] = (char) (i + 48);
} else if (i < 10 + 26) {//中间26个放大写字母
arr[i] = (char) (i + 65 - 10);
} else {//剩下的放小写字母
arr[i] = (char) (i + 97 - 10 - 26);
}
}
ArrayList list = new ArrayList();
Random rand = new Random();
for (int i = 0; i < 10; i++) {
String str = "";
for (int j = 0; j < 6; j++) {
int index = rand.nextInt(arr.length);
str += arr[index];
}
list.add(str);
}
Iterator iter = list.iterator();
while (iter.hasNext()) {
System.out.println("随机验证码:" + iter.next());
}
}
}
第2题
键盘录入学生信息,保存到集合中。
循环录入的方式,1:表示继续录入,0:表示结束录入。
定义学生类,属性为姓名,年龄,使用学生对象保存录入数据。
使用ArrayList集合,保存学生对象,录入结束后,用foreach遍历集合。
代码实现,效果如图所示:
package test02;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author yhm
* @create 2020-07-16 16:19
*/
public class Test2 {
@SuppressWarnings("all")
public static void main(String[] args) {
ArrayList list = new ArrayList();
Scanner input = new Scanner(System.in);
while (true) {
System.out.print("选择(1、录入;0、退出):");
int select = input.nextInt();
if (select == 0) {
break;
}
System.out.print("姓名:");
String name = input.next();
System.out.print("年龄:");
int age = input.nextInt();
Student stu = new Student(name, age);
list.add(stu);
}
for (Object object : list) {
System.out.println(object);
}
}
}
class Student {
private String name;
private int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Student() {
super();
}
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;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
第3题
案例:键盘录入一个字符串,去掉其中重复字符,打印出不同的那些字符,必须保证顺序。例如输入:aaaabbbcccddd,打印结果为:abcd。效果如图:
package test03;
import java.util.LinkedHashSet;
import java.util.Scanner;
/**
* @author yhm
* @create 2020-07-16 16:23
*/
public class Test03 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一串字母:");
String str = input.nextLine();
System.out.println("str=" + str);
LinkedHashSet set = new LinkedHashSet();
for (int i = 0; i < str.length(); i++) {
set.add(str.charAt(i));
}
System.out.print("去重后:");
String result = "";
for (Object object : set) {
result += object;
}
System.out.println(result);
}
}
第4题
生成一个随机100内小数,转换为保留两位小数的字符串,不考虑四舍五入的问题。
代码实现,效果如图所示:
package test04;
/**
* @author yhm
* @create 2020-07-16 16:29
*/
public class Test04 {
public static void main(String[] args) {
double num = Math.random() * 100;
System.out.println("随机数为:" + num);
String str = num + "";
str = str.substring(0, str.indexOf(".") + 3);
System.out.println("截取小数点后两位后为:" + str);
}
}
第6题
筛选字符串。
定义数组,存入多个字符串。
删除长度大于5的字符串,打印删除后的数组。
代码实现,效果如图所示:
package test05;
import java.util.Arrays;
/**
* @author yhm
* @create 2020-07-16 16:40
*/
public class Test05 {
public static void main(String[] args) {
String[] arr = {"helloworld", "java", "song", "atguigu", "li", "yan", "Iloveyou"};
System.out.println("原字符串:");
System.out.println(Arrays.toString(arr));
int index = 0;
while (index < arr.length) {
if (arr[index].length() > 5) {
System.arraycopy(arr, index + 1, arr, index, arr.length - index - 1);
arr = Arrays.copyOf(arr, arr.length - 1);
} else {
index++;
}
}
System.out.println("删除后:");
System.out.println(Arrays.toString(arr));
}
}