//类库使用案例分析
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 ;
}
}
//国际化程序、对象数组的比较