By GokiSoft.com| 19:46 24/07/2021|
Java Basic

[Share Code] Tìm hiểu cú pháp lambda - Regular Express trong Java - Khóa học Java - C2010L

#Test.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lesson08;

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

/**
 *
 * @author Diep.Tran
 */
public class Test {
    public static void main(String[] args) {
        //Regular Express
        //Vi du: Co 1 chuoi dau vao str -> 
            //kiem tra xem str co chua 1 chuoi nao do sinh theo quy luot
            //nhu sau ko: aabc (a:a-z -> gom 2->4 ky tu, b: 0->9 gom 3-5 ky tu
            //c: A-Z gom 1-5 ky tu
        String str = "xin chao abdc123AK ok acbc123AKH asdasd";
        //Goc nhin: abdc123AK, acbc123AKH
        String exp = "[a-z]{2,4}[a-z]{2,4}[0-9]{3,5}[A-Z]{1,5}";
        
        Pattern p = Pattern.compile(exp);
        Matcher matcher = p.matcher(str);
        
        //Kiem tra co xuat hien chuoi con nao phu hop ko
//        if(matcher.find()) {
//            System.out.println("Tim thay ...");
//        } else {
//            System.out.println("Ko tim thay");
//        }
        //Thuc hien in tat ca chuoi con tim thay
        System.out.println("Danh sach chuoi con tim thay: ");
        while(matcher.find()) {
//            int start = matcher.start();
//            int end = matcher.end();
            System.out.println(matcher.group());
            
//            String sub = str.substring(start, end);
//            System.out.println(sub);
        }
    }
}


#Main.java


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lesson08;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;

/**
 * Ghi that nhieu chu thich java -> compile -> jar -> JVM -> binary -> running.
 * @author Diep.Tran
 */
public class Main {
    @FunctionalInterface
    interface IRunning {
        void onRunning();
    }
    
    @FunctionalInterface
    interface IRunning3 {
        void onRunning(String r1, String r2);
    }
    
    @FunctionalInterface
    interface IRunning4 {
        void onRunning(String r);
    }
    
    interface IRunning2 {
        void onRunning();
        void onRunning2();
    }
    
    static class Running implements IRunning {
        @Override
        public void onRunning() {
            System.out.println("Test ... running ...");
        }
    }
    
    public static void main(String[] args) {
        //For
        ArrayList<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");
        
        list.forEach(v -> {
            System.out.println(v);
        });
        
        //Test stream
        System.out.println("Stream ...");
        Stream s1 = list.stream();
        s1.forEach(System.out::println);
        
        System.out.println("ParallelStream ...");
        Stream s2 = list.parallelStream();
        s2.forEach(System.out::println);
        
        //Tim hieu ky hon ve cu phap lambda
        Running r = new Running();
        r.onRunning();
        
        //Chu y: Trong TH -> class Running -> ko duoc tai su dung nhieu lan
        //Class NO NAME -> inner.
        IRunning r1 = new IRunning() {
            @Override
            public void onRunning() {
                System.out.println("Test ... running 2 ...");
            }
        };
        r1.onRunning();
        
        //Cu phap lambda
        IRunning r2 = () -> {
            System.out.println("Test ... running 2 ...");
        };
        r2.onRunning();
        
        //Viet rut gon hon
        r2 = () -> System.out.println("Test ... running 2 ...");
        r2.onRunning();
        
        //Khong the rut gon hon nua trong TH sau
        r2 = () -> {
            System.out.println("Test ... running 2 ...");
            System.out.println("Test ... running 2 ...");
            System.out.println("Test ... running 2 ...");
        };
        r2.onRunning();
        
        //TH nay ko the su dung dc cu phap lambda
        IRunning2 r22 = new IRunning2() {
            @Override
            public void onRunning() {
                System.out.println("Test running 1 ...");
            }

            @Override
            public void onRunning2() {
                System.out.println("Test running 2 ...");
            }
        };
        r22.onRunning();
        r22.onRunning2();
        
        //TH -> Interface -> 1 phuong co tham so thi code nhu the nao
        IRunning3 r33 = new IRunning3() {
            @Override
            public void onRunning(String r1, String r2) {
                System.out.println("Test running 33 ... " + r1 + ", " + r2);
            }
        };
        r33.onRunning("1", "2");
        
        r33 = (String r3, String r4) -> {
            System.out.println("Test running 33 ... " + r3 + ", " + r4);
        };
        r33.onRunning("1", "2");
        
        r33 = (String r3, String r4) -> System.out.println("Test running 33 ... " + r3 + ", " + r4);
        r33.onRunning("1", "2");
        
        r33 = (r3, r4) -> System.out.println("Test running 33 ... " + r3 + ", " + r4);
        r33.onRunning("1", "2");
        
        IRunning4 r44 = r3 -> System.out.println("OKOK");
    }
}


Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)