1~使用两种JDK计算天数
JDK7
String birthday="2002年8月10日";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
Date date=sdf.parse(birthday);
long birthdayTime=date.getTime();
//获取当前时间的毫秒值
long todayTime=System.currentTimeMillis();
//计算间隔多少天
long time=todayTime-birthdayTime;
System.out.println(time / 1000 /60 /60 /24);
JDK8
//JDK8
LocalDate ld1=LocalDate.of(2000,1,1);
LocalDate ld2=LocalDate.now();
long days = ChronoUnit.DAYS.between(ld1, ld2);
System.out.println(days);
2~十进制转为二进制
public static void main(String[] args) {
System.out.println(toBinaryString(123));
}
private static String toBinaryString(int number) {
//核心逻辑:不断地去除以2,得到余数,一直到商为0就结束
//还需要把余数拼接起来
//定义一个StringBuilder用来拼接余数
StringBuilder sb=new StringBuilder();
//利用循环不断地除以2获取余数
while (true){
if(number==0){
break;
}
//获取余数 %
int remaindar=number%2;
//倒着拼接
sb.insert(0, remaindar);
number=number/2;
}
return sb.toString();
}
3~实现parseInt方法
public static void main(String[] args) {
//字符串中只能是数字不能有其他符号
//最少一位
//0不能开头
//定义一个字符串
String str="12346789";
//使用正则表达式
if(!str.matches("[1-9]\\d{0,9}")){
System.out.println("数据格式有误");
}else
System.out.println("正确");
//定义一个变量表示最终的结果
int number=0;
//遍历字符串得到里面的每一个字符
for (int i = 0; i < str.length(); i++) {
int a=str.charAt(i)-'0';
//把每一位数字放到number中
number=number*10+a;
}
System.out.println(number);
}
4~正则表达式的练习
public static void main(String[] args) {
String regex1="1[3-9][0-9]{3}";
String regex2="1[3-9]\\d{3}";
//正则表达式需要从左往右书写
//根据需求,拆分结构
System.out.println("13549".matches(regex1));
//座机号
String regex3="0\\d{2,3}-?[1-9]\\d{4,9}";
// 0: 表示一定是0开头;
// \\d{2,3} 表示从第二位开始,可以是任意数字,可以出现2~3次;
// ? : 表示次数,零次或者一次
//邮箱号码
// 1234@qq.com dadasd@163.com dasds_dasjg1@pci.com.cn
//分为三部分:
// 第一部分: @的左边 : \\w+ :任意的字母数字下划线出现一次就行
// 第二部分 : @ 只能出现一次
// 第三部分:
// 3.1: .的左边: [\\w&&[^_]]{2,6} : 任意的字母加数字,总共出现2-6次(不能出现下划线)
// 3.2: .\\..
// 3.3: 大小写字母,只能出现2-3次 [a-zA-Z]{2,3}
// 可以把3.2,3.3看做一组,该组出现 一次或者两次
String regex4="\\w+@[\\w&&[^_]]{2,6}({\\.[a-zA-Z]{2,3}){1,2}";
//any-role idea自带编写正则表达式插件
String ste = "/^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/";
}
5~键盘录入一些1~100之间的整数,并添加到集合中,直到集合中所有数据和超过200为止
//1·创建集合
ArrayList<Integer> arr=new ArrayList<>();
int total=200;
//2·录入一些整数
Scanner sc=new Scanner(System.in);
while(total>0) {
System.out.println("请输入1~100之间的整数");
//使用nextLine用法
String str=sc.nextLine();
int num=Integer.parseInt(str);
if(num<0 || num>100){
System.out.println("数字过大");
continue;
}
total -= num;
System.out.println(total);
//3·添加到集合中,直到和超过200
arr.add(num);
}
for (int i = 0; i < arr.size(); i++) {
System.out.println(arr.get(i));
}