Java基础类库(三)

一,Arrays
Arrays:针对数组操作的工具类  (提供了一些针对数组排序和二分搜索法)
   public static String toString(int[] a):可以将int类型的数组转换成字符串 ([元素1,元素2,元素3...])
  public static void sort(int[] a)对指定的 int 型数组按数字升序进行排序
  public static int binarySearch(int[] a,int key):二分搜索法: 在int类型的数组中查找key元素的索引

public class practice1 {

	public static void main(String[]args) {
		int[]arr= {1,4,3,2,8};
		//将数组转换为字符串
		String s=Arrays.toString(arr);
		System.out.println(s);
		//排序
		Arrays.sort(arr);
		String s2=Arrays.toString(arr);
		System.out.println(s2);
		//二分查找
		int x=Arrays.binarySearch(arr, 3);
		System.out.println(x);
	}	
}
二.Calendar
1.Calendar类:日历类
 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法   并为操作日历字段(例如获得下星期的日期)提供了一些方法
2.public static Calendar getInstance() :通过一个静态功能来创建日历了对象
public class practice2 {

	public static void main(String[]args) {
		//获取当前时间
		Calendar c=Calendar.getInstance();
		//获取年月日
		int year=c.get(Calendar.YEAR);
		int month=c.get(Calendar.MONTH);
		int date=c.get(Calendar.DATE);
		
	}	System.out.println(year+" "+(month+1)+" "+date);
}

3.Calendar中的两个常用方法:
 public abstract void add(int field,int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量
 (这个方法常用)

public final void set(int year, int month,int date)设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
public class practice3 {
	public static void main(String[]args) {
		
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入年份");
		int year=sc.nextInt();
		
		Calendar c=Calendar.getInstance();
		c.set(year, 3, 1);
		c.add(Calendar.DATE, -1);
		int month=c.get(Calendar.MONTH);
		int date=c.get(Calendar.DATE);
		System.out.println(date);
	}	
}

三.System
1.System 类包含一些有用的类字段和方法。它不能被实例化。
 常用的方法:
   public static void gc()运行垃圾回收器。
   public static void exit(int status)终止当前正在运行的 Java 虚拟机。参数用作状态码;  一般情况,需要终止
    Jvm,那么参数0
   public static long currentTimeMillis()返回以毫秒为单位的当前时间
public class practice1 {

	public static void main(String[]args) {
		
		Date d=new Date();//Wed May 02 21:06:57 CST 2018
		System.out.println(d);
		
		Date dd= new Date(1000353);
	}	System.out.println(dd);//Thu Jan 01 08:16:40 CST 1970

}

2.
public static void arraycopy(Object src,int srcPos, Object dest,int destPos, int length)
 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束
 src:原数组
 dest:目标数组
 srcPos :从原数组的哪个位置开始
 destPos:到目标数组的哪个位置结束
 length:长度
   
 
  
public class pratice1 { public static void main(String[]args) { System.out.println("hello"); //System.exit(0); System.out.println("bye"); //测试执行效率 long start =System.currentTimeMillis(); int x=0; for(int i=0;i<100;i++) { x++; System.out.println("hello"); } long end=System.currentTimeMillis();
                System.out.println(end-start);
        } }

四.Date
1.java.util.Date:
   类 Date 表示特定的瞬间,精确到毫秒
 
 2.构造方法:
   public Date()表示分配它的时间(精确到毫秒)。
   public Date(long date):创建一个日期对象,指定毫秒值   (需要将long 时间毫秒值转换成Date对象)

  public void setTime(long time):设置毫秒值
public class practice1 {

	public static void main(String[]args) {
		
		Date d=new Date();//Wed May 02 21:06:57 CST 2018
		System.out.println(d);
		
		Date dd= new Date(1000353);
		System.out.println(dd);//Thu Jan 01 08:16:40 CST 1970
            }
	}

3.重点:Date的日期格式和日期的文本格式:String类型 之间进行转换
  
  Date---->String(格式化)
  
  
  String-->Date(解析)
  
  中间的转换:使用中一个中间类:DateFormat,并且DateFormat是一个抽象类,抽象意味着不能实例化,所以应该考虑用它的子类:
   SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
  
   SimpelDateFormat的构造方法:
   public SimpleDateFormat(String pattern) :构造一个SimpleDateFormat对象,根据pattern(模式:规则)
 
  SimpleDateFormat sdf = new SimpleDateFormat("xxx年xx月xx日") ;
  
  日期和时间模式
   
   年:   yyyy
   月:   MM
   日:   dd   
  时:   hh
  分:   mm
  秒:   ss
 
public class practice2 {

	public static void main(String[]args) throws ParseException {
		//Date---->String

		Date d=new Date();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		String s=sdf.format(d);
		System.out.println(s);

		//String---->Date
		String s2="2018-5-2";
		SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
		Date d2=sdf.parse(s2);
		System.out.println(d);
		}
		
	}

键盘录入生日,并计算来这个世界多少天了
//键盘录入你的出生年月日,算一下你来到这个世界多少天? 
public class practice3 {

	public static void main(String[]args) throws ParseException {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入您的生日");
		String s=sc.nextLine();
		//格式化
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		Date d=sdf.parse(s);
		long time=d.getTime();
		
		//获取当前时间
		long now=System.currentTimeMillis();
		
		long result=(now-time)/1000/60/60/24;
		System.out.println(result);
		}
		
	}

4.Date和Stirng文本格式进行相互转换的工具类

 
 
public class practice4 { public static void main(String[]args) throws ParseException { Date d=new Date(); String s=DateUtil.DateToString("yyyy-MM-dd",d); System.out.println(s); String s2="2018-5-1"; Date d2=DateUtil.StringToDate("yyyy-MM-dd", s2); System.out.println(d2);
            } }
 
 
public class DateUtil { //私有化,不让外界创建对象 private DateUtil() { } //提供静态方法 public static String DateToString(String format,Date d) { return new SimpleDateFormat(format).format(d); } public static Date StringToDate(String format,String s) throws ParseException { return new SimpleDateFormat(format).parse(s);
            }
}


五.Math
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 
 常用的方法:
  public static int abs(int a):绝对值
   public static double ceil(double a):向上取整
   public static double floor(double a):向下取整
   public static int max(int a,int b):求最大值
   public static int min(int a,int b):求最小值
   public static double pow(double a,double b):a的b次幂
   public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
   public static int round(float a):四射五入
   public static double sqrt(double a):一个数的正平方根
六.Random
Random:是一个可以获取随机数的类
 public Random():无参构造方法
 public Random(long seed) :指定long类型的数据进行构造随机数类对象 
 public int nextInt():获取随机数,它的范围是在int类型范围之内
 public int nextInt(int n):获取随机数,它的范围是在[0,n)之间
 
 
 
public class practice { public static void main(String[]args) { Random r=new Random(); System.out.println(r.nextInt());//获取int范围内的随机数 System.out.println(r.nextInt(67));//获取0-n范围内随机数
            } }

七.patten

字符
 x   x字符
 \\   反斜线字符
 \t    制表符
 \n   换行符
 \r   回车符
 
 
字符类:
 [abc]  a、b 或 c(简单类)
 [^abc]   任何字符,除了 a、b 或 c(否定)
 [a-zA-Z]  a 到 z 或 A 到 Z,两头的字母包括在内(范围)
 
预定义字符类:
 . 任何字符   如果本身就是.  \.  qq.com 写正则表达式(\\.)
 \d     数字:[0-9]       写正则表达式 :\\d
 \w     单词字符:[a-zA-Z_0-9]:字母大小写,数字字符      \\w
边界匹配器:
 ^     行的开头
 $      行的结尾
 \b     单词边界 尾 (helloword?haha:world)
Greedy 数量词(重点)
 X?     X,一次或一次也没有
 X*     X,零次或多次
 X+     X,一次或多次
 X{n}   X字符恰好出现n次
 X{n,}   X字符至少出现n次
 X{n,m}   X字符至少出现n次,但不超过m次
 
校验QQ号
 
 
public class qqtest { public static void main(String[]args) { Scanner sc=new Scanner(System.in); System.out.println("请输入您的QQ号"); String s=sc.nextLine(); String regex="[1-9]\\d{4,14}"; boolean flag=s.matches(regex); System.out.println(flag);
            } }

校验手机号
 
  
public class phoneTest { public static void main(String[]args) { Scanner sc=new Scanner(System.in); System.out.println("请输入您的手机号"); String s=sc.nextLine(); String regex="13[2,5]\\d{7,12}"; boolean flag=s.matches(regex); System.out.println(flag);
                } }

猜你喜欢

转载自blog.csdn.net/fnwibwj/article/details/80182166
今日推荐