java练习
前言
好好学习,javaweb制作全国疫情展示,接下来要用java爬虫爬取数据,所以先回顾一下java基础,以下是今天学习的知识,
第一天:数据分析疫情图——day1
第二天:数据分析疫情图——day2
第三天:数据分析疫情图——day3
第四天:数据分析疫情图——day4
第五天:数据分析疫情图——day5
一. java基础
1. 判断素数和合数
public static void main(String[] arcs) {
System.out.println("请输入一个大于1的整数:");
int m=new Scanner(System.in).nextInt();
for(int i=2;i<=m;i++) {
if(m%i==0) {
if(m==i) {
System.out.println("是数素/质数");
break;
}
else {
System.out.println("是合数");
break;
}
}
}
}
2.两数之和
public static void main(String[] src) {
System.out.println("int类型"+sum(2,3));
System.out.println("doubel类型"+sum1(2,3));
}
public static int sum(int x,int y) {
return x+y;
}
public static double sum1(double x,double y) {
return x+y;
}
3. 数组
public static void main(String[] args) {
Demo3 obj = new Demo3();
int [] src = {1,2,3,4};
int[] dest = obj. addElement(src,5,6,7);
for(int i=0;i<dest.length;i++) {
System.out.println(dest[i]);
}
}
/**
*动态的方法参数:必须是方法中的最后一个参数,方法中以数组的形式处理动态参数。
*@param src:原数组
*@param elements:元素
*@return
*
*原数组:1,2,3---src
*追加的元素:4,5,6,7 1---element
*返回新的数组:1,2,3,4,5,6,7--dest
*
*/
public int[] addElement(int[] src, int ...elements) {
int[] dest=new int[src.length+elements.length];
//数组的复制:从指定源数组中复制一个数组,复制从指定的位置开始,到日标数组的指定位置乡
/*
* 参数:
src-源数组。
srcPos-源数组中的起始位置。
dest-目标数组。
destpos-目标数据中的起始位置。
length-要复制的数组元素的数量。
*/
System.arraycopy(src,0,dest,0,src.length);
System.arraycopy(elements,0,dest,src.length,elements.length);
return dest;
}
二. 正则
以下结果都为true
public static void main(String[] args){
String str ="1234";
//任意的4位数字
String regex ="[1234567890][1234567890][1234567890][1234567890]";
System.out.println(str.matches(regex));//true-----boolean true false
regex = "[0-9][0-9][0-9][0-9]";
System.out.println(str.matches(regex));
//true
regex = "[0-9]{4}";
System.out.println(str.matches(regex));
//true
regex = "\\d{4}";
System.out.println(str. matches (regex));//true
//8-16位数字
str="1234567898";//10位
regex ="[0-9]{8,16}";
System.out.println(str.matches(regex));//true
//转义字符\d,转义为数字
regex ="\\d{8,16}";
System.out.println(str.matches(regex));
//^开头$结尾
regex ="^\\d{8,18}$";
System.out.println(str.matches(regex));
//匹配abcde;;;;---非数字的正则8,16位ucae;.
String Str="abcde";
regex="[a-z]{5}";
System.out.println("练习正则:"+Str.matches(regex));
System.out.println("练习正则:"+Str.matches("[a-z]{5}"));
//----------------------------------------------------------------
str="abcde;;;;!";
regex ="^\\D{8,16}$";
System.out.println(str.matches(regex));//true
String str ="abcDetyuiA";
//匹配最少是5位字母的
String regex ="^[a-zA-z]{5,}$";
System.out.println(str.matches(regex));//true
//一组通配符*?+
//一位1-9的数字和一位a-z的组合,组合可以出现任意次数5a6b7c7c7c
str ="5a6b7c";
//regex ="^[1-9][a-z]*$";//false
regex ="^([1-9][a-z])*$";//*零次或多次
System.out.println(str.matches(regex));//true
//?一次或一次也没有
str="";
regex="^([1-9][a-z])?$";
System.out.println(str.matches(regex));//true
//+一次或多次
str ="5a6b7c";
regex="^([1-9][a-z])+$";
System.out.println(str.matches(regex));//true
//--------------------------------------------
//xxx@xxx.xxx\w单词字符:[a-zA-Z_0-9]
String email ="1156028692@qq.com";
String regex ="^\\w+@\\w+\\.\\w+$";
boolean flag = email.matches(regex);
if(flag) {//true
System.out.println("注册成功");
} else{
System.out.println("邮箱格式错i");
}
//身份证
String sfz="999999999999993871";
String regex1="^\\w{8,21}$";//或^\\d{17}(\\d|X)$
boolean flag1=sfz.matches(regex1);
System.out.println(flag1);
}
三. 时间转换
package demo01;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/*import java.sql.Date;*/
import java.util.Date;
public class Demo07 {
public static void main(String[] args) throws ParseException {
Date date=new Date();
System.out.println(date);//标准的时间格式:Mon Jan 18 17:11:21 CST 2021
//1970年1月1号0时0分0秒之间的毫秒数
System.out.println(date.getTime());//1610961128681毫秒数
//将字符串转换为java.util.Date
String dateStr ="2021-01-18";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date2 = sdf.parse(dateStr);
System.out.println(date2);//Mon Jan 18 00:00:00 CST 2021
//将日期类型转为特定格式的字符串
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String datestr2 = sdf2.format(date);
System.out.println(datestr2);
}
}