本帖最后由 火小枪 于 2017-8-14 20:27 编辑
“老师,交卷。”
[Java] 纯文本查看 复制代码 import java.util.Scanner;
/*1. 模拟审核身份证的过程,按照以下要求实现相关代码(友情提示:不一定要用正则)(8分)
a. 提示用户在控制台输入身份证号,用一个字符串对其进行保存(2分)
b. 判断该身份证号位数是否是18位或者16位(2分)
c. 判断该身份证号除最后一位外,是否都是数字(2分)
d. 将“410124199008010231”身份证号中生日(19900801)获取出来并且打印到控制台上(2分)
*/
public class test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入身份证号:");
String str = sc.nextLine();
if (str.length() == 18) {
System.out.println("身份证号是18位");
} else if (str.length() == 16) {
System.out.println("身份证号是16位");
} else {
System.out.println("身份证号非法!");
}
for (int i = 0; i < str.length(); i++) {
if (i == str.length() - 1) {
System.out.println("除了最后一位都是数字");
break;
}
if (!("" + str.charAt(i)).matches("\\d")) {
System.out.println("非法");
break;
}
}
String re = str.substring(6, 14);
System.out.println(re);
}
}
[Java] 纯文本查看 复制代码 import java.util.ArrayList;
import java.util.Random;
/*2. 模拟抢红包过程,生成5个红包(金额是随机生成的,范围在1-10元之间)创建5个线程
* 代表5个人,然后让这5个人去抢这5个红包,每次抢红包需要300ms的时间,在控制台打印
* 出 (xxx抢了xxx元)(不限定每人抢的次数并且抢到红包后还可以接着抢,每次生成一个
* 红包)(10分)
*/
public class Test02 {
public static void main(String[] args) {
Person p = new Person();
System.out.println(p.list);
Thread t1 = new Thread(p);
Thread t2 = new Thread(p);
Thread t3 = new Thread(p);
Thread t4 = new Thread(p);
Thread t5 = new Thread(p);
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
class Person implements Runnable {
static Random r = new Random();
static ArrayList<Integer> list = new ArrayList<>();
static {
for (int i = 0; i < 5; i++) {
list.add(r.nextInt(10) + 1);
}
}
@Override
public void run() {
while (true) {
synchronized (Person.class) {
if (list.size() > 0) {
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + "抢到了" + list.remove(0) + "元");
} else {
break;
}
}
}
}
}
[Java] 纯文本查看 复制代码 import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map.Entry;
/*
3. 创建一个map集合,里面有如下元素(12分)
{香蕉=5.6, 樱桃=25, 桃子=5.6, 苹果=2.3}
a. 遍历该map,并且统计有多少种水果(key)用两种方式进行遍历(4分)
b. 将“香蕉”的价格修改为 10.9(2分)
c. 删除“桃子”这组数据(2分)
d. 将修改过后的map中所有key和value都存放到当前项目目录下(4分)比如:
*/
public class Test03 {
public static void main(String[] args) throws IOException {
HashMap<String, Double> hm = new HashMap<>();
hm.put("香蕉", 5.6);
hm.put("樱桃", (double) 25);
hm.put("桃子", 5.6);
hm.put("苹果", 2.3);
System.out.println("keySet遍历:");
for (String name : hm.keySet()) {
System.out.println(name + "..." + hm.get(name));
}
System.out.println("entrySet遍历:");
for (Entry<String, Double> en : hm.entrySet()) {
System.out.println(en.getKey() + "..." + en.getValue());
}
hm.put("香蕉", 10.9);
hm.remove("桃子");
BufferedWriter bw = new BufferedWriter(new FileWriter(new File("info.txt")));
for (Entry<String, Double> en : hm.entrySet()) {
bw.write(en.getKey() + "=" + en.getValue());
bw.newLine();
}
bw.close();
}
}
|