天天看点

类库使用案例分析

//类库使用案例分析

import java.util.Random ;

import java.util.Arrays ;

import java.util.regex.Matcher ;

import java.util.regex.Pattern ;

public class NewDemo {

    public static void main(String[] args) {

        //StringBuffer类的使用

        StringBuffer buf = new StringBuffer() ;    

        for(int x = 'a' ; x <= 'z' ; x ++) {

            buf.append((char)x) ;

        }

        buf.reverse().delete(0, 5) ; // 内容反转(逆序),并删除前5个字母

        System.out.println(buf) ;

        //利用Random类产生5个1~30之间的实际整数

        int result [] = NumberFactory.creat(5, 30) ;

        System.out.println(Arrays.toString(result));

        //通过命令参数实现Email地址的输入,并用正则表达式验证该地址是否正确

        if(args.length != 1) {

            System.out.println("程序执行错误,请输入初始化参数!") ;

            System.exit(1) ; //系统退出

        }

        String email = args[0] ;

        if(Validator.isEmail(email)) {

            System.out.println("输入正确!") ;

        }else {

            System.out.println("输入错误!") ;

        }

        //利用实际数模拟抛硬币操作,并统计正反面出现的次数

        System.out.println(NumberFactory.throwCoin(1000)) ;

        //判断给定的IP地址是否为合法IP地址

        System.out.println(Validator.validateIP("192.168.16.2")) ;

        //拆分HTML代码

        String str = "<textarea rows=\"3\" cols=\"20\">" ;

        String regex = "\\w+=\"[a-zA-Z0-9,\\+]+\"" ;

        Matcher matcher = Pattern.compile(regex).matcher(str) ;

        while(matcher.find()) {

            String temp = matcher.group(0) ;

            String result1 [] = temp.split("=") ;

            System.out.println(result1[0] + "\t" + result1[1].replaceAll("=", " ")) ;

        }

    }

}

class Validator {

    private Validator() {} ;

    public static boolean isEmail(String email) {

        if(email == null || "".equals(email)) {

            return false ;

        }

        String regex = "\\w+@\\w+\\.\\w+" ;

        return email.matches(regex) ;

    }

    public static boolean validateIP(String ip) {

        if(ip == null || "".equals(ip)) {

            return false ;

        }

        String regex = "([12]?[0-9]?[0-9]\\.){3}([12]?[0-9]?[0-9])" ;

        if(ip.matches(regex)) {

            String result [] = ip.split("\\.") ;

            for(int x = 0 ; x < result.length ; x ++) {

                int temp = Integer.parseInt(result[x]) ;

                if(temp > 255) {

                    return false ;

                }else {

                    return true;

                }

            }

        }

        return true ;

    }

}

class NumberFactory {

    private static Random random = new Random() ; //类对象实例化

    public static int [] creat(int len, int number) {

        int data [] = new int [len] ;

        int foot = 0 ;

        while (foot < data.length) {

            int num = random.nextInt(number) ;

            if(num != 0) {

                data[foot ++] = num ;

            }

        }

        return data ;

    }

    public static String throwCoin(int num) {

        int front = 0 ; //保存正面次数

        int back = 0 ; //保存反面次数

        for(int x = 0 ; x < num ; x ++) {

            int temp = random.nextInt(2) ;

            if(temp == 0) {

                front ++ ;

            }else {

                back ++ ;

            }

        }

        return "正面次数:" + front + ",反面次数:" + back ;

    }

}

//国际化程序、对象数组的比较