2017.4.23API的重要类(下)

 10.1
  Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法
 
  Calendar(日历类) -- 获取年,获取月,获取日,获取时,获取分,获取秒。
    public int get(int field):返回给定日历字段的值
 
import java.util.Calendar;

public class CalendarDemo {
 public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
  
  //获取年份
  System.out.println(c.get(Calendar.YEAR));
  
  //获取月份,注意值是从0-11月,我们想要显示的更加付给我们的阅读规则,就必须给月份加上1
  System.out.println(c.get(Calendar.MONTH)+1);
  
  //获取日期
  System.out.println(c.get(Calendar.DATE));
  
  //获取时
  System.out.println(c.get(Calendar.HOUR));
  
  //获取分
  System.out.println(c.get(Calendar.MINUTE));
  
  //获取秒数
  System.out.println(c.get(Calendar.SECOND));
  
  //使用字符串的拼接拼接成你想要的日期格式
  
  
 }

}



 10.2
  需求:获取当前时间的5年后的3个月前的7天后。
  public void add(int field,int amount):根据amount修改field的值
  public void set(int year,int month,int date):设置当前日历的年月日
 
import java.util.Calendar;

public class CalendarDemo2 {
  // 需求:获取当前时间的5年后的3个月前的7天后。
 public static void main(String[] args) {
  Calendar c = Calendar.getInstance();
      c.add(Calendar.YEAR,5 );
      c.add(Calendar.MONTH,-3);
      c.add(Calendar.DATE,7);
     //public void  int (int field, int amount)//amount 指的是要变化的数字
      System.out.println(c.get(Calendar.YEAR  ));
      System.out.println(c.get(Calendar. MONTH)+1);
      System.out.println(c.get(Calendar.DATE  ));
      //public void set(int year,int month,int date)
      //设置当前的日期;
      Calendar d = Calendar.getInstance();
      d.set(2017, 3,24);
      System.out.println(d.get(Calendar.YEAR));
      System.out.println(d.get(Calendar.MONTH)+1);
      System.out.println(d.get(Calendar.DATE));
      //set/get方法都是没有返回值得,都要拿Calendar的字段去接
     
     
 }
}

 10.3
 键盘录入年份,获取任意一年的二月有多少天
import java.util.Calendar;
import java.util.Scanner;

public class CalendarTest {
 public static void main(String[] args) {
System.out.println("请输入年份");
  
  Scanner sc = new Scanner(System.in);
  int year = sc.nextInt();
  
  // 2.将日历对象的时间调到,此年的3月的第一天
  Calendar c = Calendar.getInstance();
  c.set(year, 2, 1);
  
  //3.将日期对象向前推一天
  c.add(Calendar.DATE, -1);
  
  //4.获取此天的日期
  System.out.println("该年的二月有"+c.get(Calendar.DATE));
  
 }

}



--------------------------------------------------------------------------------------------------------------------------
 11. 正则表达式:
 11.1
  正则表达式:符合一定规则的字符串
 
  案例:(用正则和代码两种方式实现)
    键盘录入qq号码,校验QQ号码。
  需求:
    1:要求必须是5-15位数字
   2:0不能开头
 
第一种方法:import java.util.Scanner;

public class RegexDemo {
public static void main(String[] args) {
  Scanner sc = new Scanner (System.in);
  System.out.println("请输入你的qq号码");
   String s = sc.nextLine();
  boolean flag = true;
   if(!s.startsWith("0")){
    if(s.length()>5&&s.length()<15){
     char []chs=s.toCharArray();
     for (int i = 0; i < chs.length; i++) {
     if(Character.isDigit(chs[i])){}else{//调用Character里面的isDigit()方法判断是否是数字
      flag = false;
     }
    }
    }
    else{
     flag = false;
    }
   
   }
   else{
    flag = false;
   }
   System.out.println(flag);
 }
}

第二种方法:正则表达式
import java.util.Scanner;

public class RegexDemo2 {
public static void main(String[] args) {
  //public boolean mathches(String reg)
  //判断字符串是否与给定的regex表达式匹配;
  Scanner  sc = new Scanner(System.in);
  System.out.println("请输入你的qq号码");
   String str = sc.nextLine();
  String reg = "[1-9][0-9]{4,14}";
  
  boolean flag = str.matches(reg);
  
  
    System.out.println(flag);
    
 }
}

 
 11.2
 规则字符在java.util.regex Pattern类中

 A:字符
  x 字符x(举例:a,1)
  \\ 反斜线字符          
 如果是要用“\\”切割字符串,正则表达式应该写成 String s = “\\\\”;(面试重点内容)
        
 B:字符类
  [abc] a、b 或 c(简单类)
  [^abc] 任何字符,除了 a、b 或 c(否定)
  [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
  [0-9] 0-9字符
  
 C:预定义字符类
  . 任何字符
  \d 数字:[0-9]
  \w 单词字符:[a-zA-Z_0-9]
  
    
 D:Greedy 数量词
 X? X,一次或一次也没有
 X* X,零次或多次
 X+ X,一次或多次
 X{n} X,恰好 n 次
 X{n,} X,至少 n 次
 X{n,m} X,至少 n 次,但是不超过 m 次 
 
 结论:以后需要匹配的正则表达式怎么写呢?
 答:不用写,直接网上百度
 
  11.3
   判断功能:
    public boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。 
   需求1:找出规则,写出正则(1[38][0-9]{9}),校验电话号码
       13245678901 13332345678 13456789012 18812345678 18999999999
    18666666666 18786868686
public class RegexDemo2 {
 public static void main(String[] args) {
                String number = "13245678901";
  //正则表达式
  String reg = "1[38][0-9]{9}";
  //调用maches(String reg)进行判断指定字符串是否匹配指定的正则表达式
  boolean flag = number.matches(reg);
  System.out.println(flag);
 }

}


 

   需求2:找出规则,写出正则(String reg = "[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,8}(\\.[comnet]{2,3})+"),校验邮箱
    [email protected]   [email protected]   [email protected]   [email protected]
    [email protected]   [email protected]
public class RegexDemo3 {
 public static void main(String[] args) {
String email = "[email protected]";
  //写一个正则表达式验证这些个邮箱
  String reg = "[a-zA-Z_0-9]+@[a-zA-Z_0-9]{2,8}(\\.[comnet]{2,3})+";
  //依据正则表达式来验证上面的邮箱
  System.out.println(email.matches(reg));
 }

}
   
  11.4 
   分割功能
  public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。  
   需求1:
   分割如下字符串:
   String s = "aa,bb,cc";   String rex = " ,";
   String s2 = "aa.bb.cc";  String rex = ".";
   String s3 = "aa bb cc";  String rex = " ";
   String s4 = "aa   bb                     cc";      String rex = " +";
   String s5 = "D:\\baidu\\20150826\\day14";          String rex = "\\\\"
 
   需求2:
   我有如下一个字符串:”91 27 46 38 50”
   请写代码实现最终输出结果是:”27 38 46 50 91”
   import java.util.Arrays;

public class RegexDemo5 {
 public static void main(String[] args) {
  
  //切割字符串
  String s = "91 27 46 38 50";
  String reg = " ";
  String[] strs = s.split(reg);
  
  //遍历字符串数组,并定义一个int[]
  int[] arr = new int[strs.length];
  for (int i = 0; i < strs.length; i++) {
   arr[i] = Integer.parseInt(strs[i]);
  }
  
  //排序int[]
  Arrays.sort(arr);
  
  //遍历数组
  StringBuffer sb = new StringBuffer();
  for (int i = 0; i < arr.length; i++) {
   sb.append(arr[i]+" ");
  }
  
  //将sb转换为String类型
  System.out.println(sb.toString());
  
 }

}

  11.5
   替换功能
   public String replaceAll(String regex,String replacement):把符合regex的用replacement替换
   需求:字符串中的数字使用*代替
public class RegexDemo6 {
 public static void main(String[] args) {
  
  String s = "我的银行卡号是:6102344354565";
  String reg = "[0-9]";
  String newStr = s.replaceAll(reg, "*");
  System.out.println(newStr);
 }

}

你可能感兴趣的:(2017.4.23API的重要类(下))