日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA复习(对象的克隆、正则表达式)

發布時間:2023/12/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA复习(对象的克隆、正则表达式) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對象的克隆

?

對象的克隆就是復制的操作,和之前學習的引用傳遞不同 在引用傳遞中一個 實例 可以有多個名字 但是多個名字都指向一個對象

?

克隆出來的對象 和之前的對象 沒有任何的引用關系

?

想要實現對象的克隆,首先克隆對象的類,必須實現一個接口: public interface Cloneable ,只有實現了該接口的類才能有克隆的能力:

?

?

可用通過調用 clone()方法 為一個對象克隆,而這個方法定義在Object類中,所有的類都默認存在該方法

范例:實現對象的克隆

Person per1=new Person();

?????????

????????? Person per2=(Person) per1.clone();

?????????

????????? System.out.println(per1==per2);

?

通過調用clone方法可以為一個對象克隆,但是必須實現clonable接口

?

?

?

?

正則表達式:

?

正則表達式解決的問題主要在于對字符串的格式化處理,為了理解方便做一個案例,判斷一個字符串是否全部是由數字組成

public static void main(String[] args) {

?????????

????????? String str="12A3";

?????????

????????? System.out.println(isNumber(str));

???? }

????

????

???? public static boolean isNumber(String str) {

?????????

?????????

????????? char[]arr=str.toCharArray(); //先變為char數組

?????????

?????????

????????? for(int i=0;i<arr.length;i++) {

??????????????

??????????????

?????????????? if(arr[i]<'0'||arr[i]>'9') {

???????????????????

??????????????????? return false;

?????????????? }????????

????????? }

????????? return true;

?????????

?????????

???? }

?

接下來使用正則完成同樣的功能:

public static void main(String[] args) {

?????????

????????? String str="123";

?????????

????????? if(str.matches("\\d+")) {

??????????????

?????????????? System.out.println("是數字");

????????? }else {

??????????????

?????????????? System.out.println("不是數字");

????????? }

???? }

?

?

通過正則的驗證,可以很方便的完成字符串的處理操作

?

正則的匹配符號: 觀察java.util.regex 包pattern類

?

1? 轉義字符 : \\?? \

?

2 \d 代表任意的一位數字? \D 表示任意非數字

?

3 [abc] 匹配字符串里面 可能 a? b? c 中的其中一個

?

4 [^abc] 非的意思 不是 a? b? c 其中的一個

?

5 [a-zA-Z] 全部字母中的任意一個

?

6 \w? 任意的數字 字母 _ 等價于 [a-zA-Z]

?

7\W?

?

8 ? 出現0次或者1

?

9 + 出現一次或者多次

?

10 {n} n 給定的次數

?

11 {m,n}

?

正則表達式 記住常用的就OK 不常用的有生成工具 一鍵生成

?

?

String類對正則的支持:

?

1 public?boolean?matches(String?regex) 與指定的正則進行匹配

?

2 public?String?replaceAll(String?regex, String?replacement) 替換指定正則的全部內容

?

3 public?String[]?split(String?regex);根據指定正則進行字符串的分割

范例: 消除字符串中字母

?

public static void main(String[] args) {

?????????

????????? String str="123fdfsds5438fgh124jj9";

?????????

????????? // 首先定義 正則規則:

?????????

????????? String regex="[a-zA-Z]+"; //字母出現一次或者多次

?????????

????????? System.out.println(str.replaceAll(regex, ""));

???? }

?

練習:給定123fdfsds5438fgh124jj9字符串 按照數字拆分

public static void main(String[] args) {

????????

???????? String str="123fdfsds5438fgh124jj9";

????????

???????? // 首先定義 正則規則:

????????

???????? String regex="\\d"; //字母出現一次或者多次

????????

???????? String[] result=str.split(regex);

????????

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

????????????

???????????? System.out.print(result[i]+"");

???????? }

??? }

?

練習:給定 aaaaab? 字符串? b之前可以有任意個a? 但是不能沒有至少有1

public static void main(String[] args) {

?????????

????????? String str="aaaab";

?????????

????

????????? String regex="a+b";

?????????

????????? System.out.println(str.matches(regex));

?????????

???? }

????

?

?

練習: 驗證日期格式 是否合法,如果合法 轉換為Date類型輸出

1989-02-06

public static void main(String[] args) throws ParseException {

?????????

?????????

????????? String str="1989-02-06";? //網站上的日期 現在都不讓用戶輸入 鼠標點擊

?????????

????????? String regex="\\d{4}-\\d{2}-\\d{2}";

?????????

????????? if(str.matches(regex)) {

??????????????

?????????????? Date date=new SimpleDateFormat("yyyy-MM-dd").parse(str);

?????????????? System.out.println(date);

????????? }else {

??????????????

?????????????? System.out.println("輸入的日期格式不正確");

????????? }

???? }

?

?

1? 使用正則表達式驗證郵箱是否合法

?

2? 驗證java 標識符是否合法 數字 字母 下劃線組成 不能以數字開頭

?

?

package qf;

?

public class Zz2 {

??? public static void main(String[] args) {

???????? /*String str="1996-11-01";

???????? String regex="\\d{4}-\\d{2}-\\d{2}";

???????? System.out.println(str.matches(regex));*/

???????? String emal="1264957234@qq.com";

???????? String emal1="wgq1264957234@163.com";

???????? String regex="\\w{5,16}@\\w{2,3}.com";

???????? System.out.println(emal.matches(regex));

???????? System.out.println(emal1.matches(regex));

??? }

?

}

?

?

package qf;

?

public class Zz2 {

??? public static void main(String[] args) {

??????? String str="_ad2";

??????? String regex="[a-zA-Z_]\\w+";

??????? System.out.println(str.matches(regex));

??? }

?

}

?

?

總結

以上是生活随笔為你收集整理的JAVA复习(对象的克隆、正则表达式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。