接着昨天的正則表達式,今天接着作一些補充:java
先上兩個練習:正則表達式
package cn.tedu.regex; /** * 1.郵箱格式的校驗: 2607509766@qq.com langang@163.com langang@tedu.cn langang@sina.com.cn(只能出現一次com) * @author 唐雕 * */ public class PatternExer3 { public static void main(String[] args) { String email = "iwouuu98489@qq.com"; //用()裏面就能夠增長一連串的東西了 System.out.println(email.matches("[a-zA-Z0-9]{6,32}@[a-zA-Z0-9]+(\\.com)") || email.matches("[a-zA-Z0-9]{6,32}@[a-zA-Z0-9]+(\\.com)?(\\.cn)")); } }
package cn.tedu.regex; import java.util.Scanner; /** * 5. 輸入一個字符串,統計其中每個字符出現的次數 * @author 唐雕 * */ public class PatternExer1 { public static void main(String[] args) { Scanner s = new Scanner(System.in); String str = s.next(); getCount(str); } //這個方法 public static void getCount(String str){ if(str == null) System.out.println("輸入不合法!!"); while(str.length() > 0) { char c = str.charAt(0); int len = str.length(); str = str.replaceAll("" + c, "");//怎麼將一個變量放到正則表達式中?直接用一個鏈接就是了,返回如今的字符串長度 System.out.print(c + ":" + (len - str.length()) + " "); } } }
package cn.tedu.regex; /** * 3.對於任意的字符串能夠認爲是由多組疊字或者單字來拼成的,這每一組疊字/單字都是字符串的碎片,計算一個字符串平均的碎片長度 aaabbbbbcddaaacc -> aaa bbbbb c dd aaa cc -> (3 + 5 + 1 + 2 + 3 + 2)/6 = 2.67 * @author 唐雕 * */ public class PatternExer3 { public static void main(String[] args) { String str = "aaabbbbbcddaaacc"; //記錄字符串的原長度 int len = str.length(); //將字符串中疊字替換爲單字,而後求出長度,也就是個數 str = str.replaceAll("(.)\\1+", "$1"); System.out.println(len*1.0/str.length());//絕大部分小數轉化爲二進制在計算機中進行存儲的時候,都會產生舍入偏差, //因此結果是一連串的小數!! } /* //這個方法 public static double getAverage(String str){ //怎麼拆開? //碎片個數,將所有的疊字去掉 }*/ }
好了,好了,好了,先簡單回顧一下基礎吧!以後在實際開發中,還須要進一步的介紹,下一篇隨筆,就開始回顧包裝類,數學類和抽象類吧!!spa