1. 程式人生 > >正則表示式和Object類

正則表示式和Object類

Java 正則表示式

Test2.java 檔案程式碼:

/正則表示式 regex
/*在對字串資料進行一些複雜的匹配,查詢,替換等操作時,通過正則表示式,可以方便實現字串的複雜操作
 * 
 */
public class Test1 {
public static void main(String[] args) {


// String regex="[a-zA-Z0-9_.-]";
String regex="\\d";//0~9任意一個
String str="9";
System.out.println(str.matches(regex));//判斷字串是否匹配指定的正則表示式 true

String regex1="[0-9]";//0~9任意一個
System.out.println(str.matches(regex1));//true

String regex2="\\w";//任意單詞字元,只能有一個  [a-zA-A0-9_]
System.out.println("_".matches(regex2));//true

String regex3="\\s";
System.out.println(" ".matches(regex3));//true

}


}

Test3.java 檔案程式碼:

public class Test2 {
public static void main(String[] args) {
String regex="[a-z]?";//0<=    <=1
System.out.println("a".matches(regex));//true

String regex1="[A-Z]*";//>=0
System.out.println("ABZ".matches(regex1));//true

String regex2="[0-9]+";//>=1
System.out.println("0".matches(regex2));//true

String regex3="[a-zA-Z0-9]{3}";//==3
System.out.println("aA0".matches(regex3));//true

String regex4="[a-zA-Z0-9._-]{3,}";//>=3
System.out.println("aA0-".matches(regex4));//true

String regex5="[ace]{2,4}";//2<=   <=4
System.out.println("ac".matches(regex5));//true
}


}

正則表示式郵箱判斷

下面是一個例子:

Test4.java 檔案程式碼:

public class Test3 {
//用正則表示式判斷郵箱格式     [email protected]
public static void main(String[] args) {
// TODO Auto-generated method stub
// String str=".";任意字元
// System.out.println("a".matches(str));
String emailRegex="^[a-zA-Z0-9_.-][email protected]([a-zA-Z0-9_.-]+\\.)+[a-zA-Z0-9]{2,4}$";//任意一個
String email="[email protected]";
System.out.println(email.matches(emailRegex));

}


}

String字串的拆分

//字串的拆分  split()   可以將字串,按照特定的分隔符拆分成字串陣列
public class Test4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="java cpp php c# objective-c";
String regex="\\s";//用空格進行拆分
String[] array=str.split(regex);
System.out.println("array="+Arrays.toString(array));//array=[java, cpp, php, c#, objective-c]

String str1="100+200-150=150";
String[] array1=str1.split("[\\+\\-\\=]");
System.out.println("array1="+Arrays.toString(array1));//array1=[100, 200, 150, 150]
}


}

Cell類重寫Object的toString()和equals()方法

public class Cell extends Object{
private int row;//行
private int col;//列
public Cell(){
super();
}
public Cell(int row, int col) {
super();
this.row = row;
this.col = col;
}
public int getRow() {
return row;
}
public void setRow(int row) {
this.row = row;
}
public int getCol() {
return col;
}
public void setCol(int col) {
this.col = col;
}
public void print(){
System.out.println("row="+this.row+",col="+this.col);
}
//Cell類繼承了Object類可以重寫Object類裡的equals()方法

@Override
public boolean equals(Object obj) {
if (this == obj){
return true;
}
if (obj == null){
return false;
}
if (getClass() != obj.getClass()){
return false;
}
Cell other = (Cell) obj;
if (col != other.col){
return false;
}
if (row != other.row){
return false;
}
return true;
}



// @Override
// public boolean equals(Object obj){//cell.equals(cell1);  this=cell  obj=cell1
// //地址一樣表示同一個物件
// if(this==obj){
// return true;
// }
// if(obj==null){
// return false;
// }
// //表示同一點
// if(obj instanceof Cell){//表示obj是Cell的子類或同類
// Cell cell1=(Cell) obj;//向下造型  Object obj轉成Cell型別
// return this.row==cell1.row&&this.col==cell1.col;
// }
// return false;
// }
//Cell類繼承了Object類可以重寫Object類裡toString()
public String toString() {
return "Cell [row=" + row + ", col=" + col + "]";
}

}

Cell類的測試類

public class TestCell {
public static void main(String[] args) {
Cell cell=new Cell(3,4);
//cell.print();
System.out.println("cell="+cell);//toString()預設存在

Cell cell1=new Cell(3,4);
System.out.println("cell1="+cell1);
System.out.println(cell==cell1);//false  ==比較的是地址

System.out.println(cell.equals(cell1));
}


}