2019 - 05 - 23 자바 학습 일기 정규 표현 식 & 상용 도구 클래스

35923 단어
정규 표현 식
개요:
문법 규칙 에 맞 는 일련의 문자열 을 설명 하거나 일치 시 키 는 단일 문자열 을 말 합 니 다.
사실은 일종 의 규칙 이다. 자신 만 의 특별한 응용 이 있다.
역할:
예 를 들 어 메 일 을 등록 하면 메 일 은 사용자 이름과 비밀번호 가 있 고 길 이 를 제한 합 니 다.
이 길 이 를 제한 하 는 일 은 정규 표현 식 에서 하 는 것 이다.
package com.regex;

public class Demo1 {

    public static void main(String[] args) {
        //         
        System.out.println(checkQQ("012345"));
        //        
        String regex = "[1-9]\\d{4,14}";
        System.out.println("111111".matches(regex));
    }

    /**
     *   :  qq  
     * 1、     5-15    
     * 2、     0 
     * 3、       
     *   qq 
     * 1、       boolean
     * 2、      String qq
     */

    public static boolean checkQQ(String qq) {
        boolean flag = true; //     qq       flag   false,           

        if (qq.length() >= 5 && qq.length() <= 15) {
            if (!qq.startsWith("0")) {
                char[] arr = qq.toCharArray(); //            
                for (int i = 0; i < arr.length; i++) {
                    char ch = arr[i];
                    if (!(ch >= '0' && ch <= '9')) {
                        flag = false; //     
                        break;
                    }
                }
            } else {
                flag = false; //  0  ,   qq  
            }
        } else {
            flag = false; //      
        }
        return flag;
    }

}

 정규 표현 식 의 분할 기능:
String 클래스 의 기능: Public String [] split(String regex)
주어진 문자열 의 숫자 정렬:
package com.regex;

import java.util.Arrays;

public class Test1 {
    /**
     *   : "91 27 46 38 50"             "27 38 46 50 91"    
     *   :
     * 1,    UN        
     * 2,                     int   
     * 3,  
     * 4,                  
     */
    public static void main(String[] args) {
        String s = "91 27 46 38 50";
        //1,    UN        
        String[] sArr = s.split(" ");
        // 2,                     int   
        int[] arr = new int[sArr.length];
        for (int i = 0; i < arr.length; i++) {    
            arr[i] = Integer.parseInt(sArr[i]);        //           
        }
        //3,  
        Arrays.sort(arr);
        //4,                  
        /*String str = "";
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                str += arr[i];
            }else {
                str += arr[i] + " ";
            }
        }
        System.out.println(str);*/
        
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]);
            }else {
                sb.append(arr[i] + " ");
            }
        }
        System.out.println(sb);
    }

}

 
정규 표현 식 의 그룹 기능:
캡 처 그룹 은 왼쪽 에서 오른쪽으로 괄호 를 계산 하여 번 호 를 매 길 수 있 습 니 다.
그룹 0 은 항상 전체 표현 식 을 대표 합 니 다.
a: 절단
필요: 접사 에 따라 절단 하 십시오: "adqqfgkkkjpppa 1"
b: 교체
수요: 나, 나, 나, 나.
문자열 복원: 공부 하기 좋아 합 니 다.
 
    public static void demo3() {
        String s = "   ... .. . ...   .... . .. ... .. . .   ......    . . ";
        String s2 = s.replaceAll("\\.", "");
        String s3 = s2.replaceAll("(.)\\1+", "$1");    //$1         
        System.out.println(s3);
    }

    public static void demo2() {
        String s = "adqqfgkkkjppppa1";
        String regex = "(.)\\1+";        //+            
        String[] arr = s.split(regex);
        
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

    public static void demo1() {
        //       ,    
        /*String regex = "(.)\\1(.)\\2";
        System.out.println("    ".matches(regex));
        System.out.println("    ".matches(regex));
        System.out.println("    ".matches(regex));
        System.out.println("    ".matches(regex));*/
        
        //       ,    
        String regex = "(..)\\1";
        System.out.println("    ".matches(regex));
        System.out.println("    ".matches(regex));
        System.out.println("    ".matches(regex));
        System.out.println("    ".matches(regex));
    }

 
Pattern 과 Matcher:
패턴 과 일치 하 는 전형 적 인 호출 순서:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matchers();
정규 표현 식 가 져 오기 기능:
Pattern 과 Matcher 의 결합 사용
필요: 문자열 의 핸드폰 번 호 를 가 져 옵 니 다.
package com.regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Demo3 {

    public static void main(String[] args) {
        String s  = "       :13912345678,    13838383388,  13345678910";
        
        String regex = "1[3578]\\d{9}";        //          
        
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(s);
        while (m.find()) {
            System.out.println(m.group());
        }
    }

}

 Math 클래스 의 개술 과 사용:
A: 개술
Math 류 는 초등 지수, 대수, 제곱 근, 삼각함수 등 기본 수학 연산 을 수행 하 는 방법 을 포함한다.
B: 멤버 방법
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 double pow(double a,double b)
public static random()
public static int round(float a) 
public static double sqrt(double a)
public class Demo4 {
    public static void main(String[] args) {
        System.out.println(Math.PI);
        System.out.println(Math.abs(-10)); //     

        /**
         * ceil   
         */
        System.out.println(Math.ceil(12.3));     //     ,       double
        System.out.println(Math.ceil(12.99));
        
        System.out.println(Math.floor(12.3));    //    ,       double 
        System.out.println(Math.floor(12.99));
        
        //          
        System.out.println(Math.max(20, 30));
        
        //
        System.out.println(Math.pow(2, 3));
        
        //  0.0 1.0       ,  0.0,   1.0
        System.out.println(Math.random());
        
        //    
        System.out.println(Math.round(12.3f));
        System.out.println(Math.round(12.9f));
        
        //   
        System.out.println(Math.sqrt(4));
        System.out.println(Math.sqrt(3));
        System.out.println(Math.sqrt(2));
    }

}

 
Random 클래스 의 개술 과 방법 사용:
A: 개술:
같은 피 드 로 두 개의 Random 인 스 턴 스 를 만 들 면 무 작위 수 를 만 드 는 데 사 용 됩 니 다.
모든 인 스 턴 스 에 대해 같은 방법 으로 시퀀스 를 호출 합 니 다. 같은 숫자 시퀀스 를 생 성하 고 되 돌려 줍 니 다.
B: 구조 방법
public Random()
public Random(long seed)
C: 멤버 방법
public int nextInt()
public int nextInt(int n)
import java.util.Random;

public class Demo5 {

    public static void main(String[] args) {
        Random r = new Random();
        
        /*int x = r.nextInt();
        System.out.println(x);
        for (int i = 0; i < 10; i++) {
            System.out.println(r.nextInt());
        }*/
        
        Random r2 = new Random(1000);
        
        int a = r2.nextInt();
        int b = r2.nextInt();
        
        System.out.println(a);
        System.out.println(b);
    }

 
System 클래스 의 개요 와 방법 사용:
A: 개술
System 클래스 는 유용 한 클래스 필드 와 방법 을 포함 합 니 다.그것 은 실례 화 될 수 없다
B: 멤버 방법
public static void gc()
public static void exit(int status)
public static long currentTimeMillis()
public static void arraycopy(Object src, int srcPos,Object dest, int destPos,int length)
    public static void demo4() {
        int[] src = {11,22,33,44,55};
        int[] dest = new int[8];
        for (int i = 0; i < dest.length; i++) {
            System.out.println(dest [i]);
        }
        
        System.out.println("---------------");
        System.arraycopy(src, 0, dest, 0,src.length);    //       
        
        for (int i = 0; i < dest.length; i++) {
            System.out.println(dest [i]);
        }
    }

    public static void demo3() {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 1000; i++) {
            System.out.println("*");
        }
        long end = System.currentTimeMillis();        //          
        
        System.out.println(end - start);
    }

    public static void demo2() {
        System.exit(0);        // 0        ,  jvm
        System.out.println("1111111");
    }

    public static void demo1() {
        for (int i = 0; i < 100; i++) {
            new Demo();
            System.gc();
        }
    }

 
BigInteger 류 의 개술 과 방법 사용:
A: 개술
Integer 범 위 를 초과 한 데 이 터 를 연산 할 수 있 습 니 다.
B: 구조 방법
publlic BigInteger(String val)
C: 멤버 방법
public BigInteger add(BigInteger val)
public BigInteger subtract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger[ ] divideAndRemainder(BigInteger val)
public class Demo7 {

    public static void main(String[] args) {
        BigInteger bi1 = new BigInteger("100");
        BigInteger bi2 = new BigInteger("2");
        
        System.out.println(bi1.add(bi2));        // +
        System.out.println(bi1.subtract(bi2));    // -
        System.out.println(bi1.multiply(bi2));    // *
        System.out.println(bi1.divide(bi2));    // /
        
        BigInteger[] arr = bi1.divideAndRemainder(bi2);//      
        
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

 
BigDecimal 류 의 개술 과 방법 사용:
A: 개술
연산 할 때, float 유형 과 double 유형 은 정밀도 를 잃 기 쉽 기 때문이다.
그래서 자바 는 부동 소수점 을 정확하게 표시 하고 계산 할 수 있 도록 BigDecimal 을 제공 했다.
가 변 적 이지 않 고 임 의 정밀도 가 있 는 기호 10 진수
B: 구조 방법
public BigDecimal(String val)
C: 멤버 방법
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)
import java.math.BigDecimal;

public class Demo8 {

    public static void main(String[] args) {
        /*BigDecimal bd1 = new BigDecimal(2.0);            //           ,      
        BigDecimal bd2 = new BigDecimal(1.1);
        
        System.out.println(bd1.subtract(bd2));*/
        
        /*BigDecimal bd1 = new BigDecimal("2.0");        //             ,     
        BigDecimal bd2 = new BigDecimal("1.1");
        
        System.out.println(bd1.subtract(bd2));*/
        
        BigDecimal bd1 = BigDecimal.valueOf(2.0);        //               
        BigDecimal bd2 = BigDecimal.valueOf(1.1);
        
        System.out.println(bd1.subtract(bd2));
    }

 
Date 클래스 의 개요 와 사용 방법:
A: 개술
클래스 Date 는 특정한 순간 을 나타 내 고 밀리초 까지 정확 합 니 다.
B: 구조 방법
public Date()
public Date(long date)
C: 멤버 방법
public long getTime()
public void setTime(long time)
    public static void demo1() {
        Date d1 = new Date();        //               
        System.out.println(d1);
        
        Date d2 = new Date(0);        //           0    1970 1 1 
        System.out.println(d2);
    }

    public static void demo2() {
        Date d1 = new Date();
        System.out.println(d1.getTime());                    //           
        System.out.println(System.currentTimeMillis());        //                 
    }

 
SimpleDateFormat 클래스 는 날짜 와 문자열 의 상호 변환 을 실현 합 니 다.
A: 개술
DateFormat 날짜 / 시간 형식 화 된 하위 클래스 의 추상 적 인 클래스 로 언어 와 무관 한 방식 으로 날짜 나 시간 을 포맷 하고 해석 합 니 다.
추상 클래스 이기 때문에 사용 기간 하위 클래스 Simple DateFormat
B: SimpleDateFormat 구조 방법
public SimpleDateFormat()
public SimpleDateFormat(String pattern)
C: 멤버 방법
public final String format(Date date)
public Date parse(String source)
    public static void demo4() throws ParseException {
        //             
        String str = "2000 06 04  08:08:08";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd  HH:mm:ss");
        Date d = sdf.parse(str);    //             
        System.out.println(d);
    }

    public static void demo3() {
        Date d = new Date();    //                
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd  HH:mm:ss");    //         
        System.out.println(sdf.format(d));    //           
    }

    public static void demo2() {
        Date d = new Date();                            //            
        SimpleDateFormat sdf = new SimpleDateFormat();    //          
        System.out.println(sdf.format(d));                //19-5-25   1:03
    }

    public static void demo1() {
        //DateFormat df = new DateFormat();        //DateFormat    ,      
        //DateFormat df1 = new SimpleDateFormat();
        DateFormat df1 = DateFormat.getDateInstance();//             ,             
    }

 
Demo:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Test2 {
    /**
     *   :             ?
     *   :
     * 1、              String      
     * 2、         
     * 3、             
     * 4、             
     * 5、            1000,   60,   60,   24   
     * @throws ParseException 
     */
    public static void main(String[] args) throws ParseException {
        //1、              String      
        String birthday = "2000 06 04 ";
        String today = "2019 05 25 ";
        //2、         
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd ");
        //3、             
        Date d1 = sdf.parse(birthday);
        Date d2 = sdf.parse(today);
        //4、             
        long time = d2.getTime() - d1.getTime();
        //5、            1000,   60,   60,   24   
        System.out.println(time / 1000 / 60 /60 /24);
    }

}

 
Calendar 클래스 의 개요 와 날 짜 를 가 져 오 는 방법:
A: 개술
Calendar 클래스 는 추상 적 인 클래스 로 특정한 순간 과 YEAR, MONTH, DAY 와 같은 그룹 입 니 다.OF、HOUR
등 달력 필드 간 전환 방법 을 제공 하고 달력 필드 를 조작 하 는 방법 (예 를 들 어 다음 주 날 짜 를 얻 는 것) 을 제공 합 니 다.
B: 멤버 방법
public static Calendar getInstance()
public int get(int field)
import java.util.Calendar;

public class Demo1 {

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance(); //           
        // System.out.println(c);
        System.out.println(c.get(Calendar.YEAR)); //        
        System.out.println(c.get(Calendar.MONTH));//        ,     0     
        System.out.println(c.get(Calendar.DAY_OF_MONTH));//       
        System.out.println(c.get(Calendar.DAY_OF_WEEK));//       ,       

        System.out.println(c.get(Calendar.YEAR) + " " + getNum((c.get(Calendar.MONTH) + 1)) + " "
                + getNum(c.get(Calendar.DAY_OF_MONTH)) + "   " + getWeek(c.get(Calendar.DAY_OF_WEEK)));
    }

    /**
     *             
     * 1、     String 
     * 2、    int week
     */
    public static String getWeek(int week) {
        String[] arr = { "", "   ", "   ", "   ", "   ", "   ", "   ", "   " };
        return arr[week];

    }

    /**
     *           0 
     * 1、     String   
     * 2、    ,int num
     */
    public static String getNum(int num) {
        /*
         * if (num > 9) { return "" + num; }else { return "0" + num; }
         */
        return num > 9 ? "" + num : "0" + num;
    }
}

 
Calendar 클래스 의 add () 와 set () 방법:
멤버 방법:
public void add(int field,int amount)
public final void set(int year,int month,int date)
어떻게 임의의 해 를 얻 습 니까? 평년 입 니까? 윤년 입 니까?
필요:
키 보드 는 임의의 연도 에 기록 하여, 이 해 가 윤년 인지 평년 인지 판단 한다.
 
import java.util.Calendar;
import java.util.Scanner;

public class Test3 {
    /**
     *   :          ,           
     * Calendar c = Calenda.getInstance();
     * 
     *   :
     * 1、     Scanner
     * 2、  Calendar c = Calenda.getInstance();
     * 3、  set         3 1 
     * 4、      1
     * 5、       ,   29   true    false
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("     ,            ");
        
        String line = sc.nextLine();            //       
        int year = Integer.parseInt(line);        //           
        boolean b = getYear(year);
        System.out.println(b);
    }

    private static boolean getYear(int year) {
        //2、  Calendar c = Calenda.getInstance();
        Calendar c = Calendar.getInstance();
        //3、  set         3 1 
        c.set(year,2,1);
        //4、      1
        c.add(Calendar.DAY_OF_MONTH, -1);
        //5、       ,   29   true    false
        return c.get(Calendar.DAY_OF_MONTH) == 29;
    }

}

 
다음으로 전송:https://www.cnblogs.com/clqbolg/p/10915758.html

좋은 웹페이지 즐겨찾기