1. java中常用到得設計模式有哪幾種
一共23種設計模式!
按照目的來分,設計模式可以分為創建型模式、結構型模式和行為型模式。
創建型模式用來處理對象的創建過程;結構型模式用來處理類或者對象的組合;行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述。
創建型模式用來處理對象的創建過程,主要包含以下5種設計模式:
工廠方法模式(Factory Method Pattern)
抽象工廠模式(Abstract Factory Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
單例模式(Singleton Pattern)
結構型模式用來處理類或者對象的組合,主要包含以下7種設計模式:
適配器模式(Adapter Pattern)
橋接模式(Bridge Pattern)
組合模式(Composite Pattern)
裝飾者模式(Decorator Pattern)
外觀模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述,主要包含以下11種設計模式:
責任鏈模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解釋器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
備忘錄模式(Memento Pattern)
觀察者模式(Observer Pattern)
狀態模式(State Pattern)
策略模式(Strategy Pattern)
模板方法模式(Template Method Pattern)
訪問者模式(Visitor Pattern)
推薦你一本好書:《軟體秘笈:設計模式那點事》,裡面講解的23中設計模式例子很生動,容易理解,還有JDK中設計模式應用情況,看了收獲挺大的!網路裡面搜「設計模式」,第一條中設計模式網路中就有首推該圖書,瀏覽量在20幾萬以上的,不會錯的。好東西大家一起分享!
祝你早日學會設計模式!
2. 想利用java里pattern功能處理對多個關鍵字的匹配查詢
Pattern pattern = Pattern.compile("切");
Matcher matcher = pattern.matcher(txt);
Matcher matcher2 = Pattern.compile("蒸").matcher(txt);
Matcher matcher3 = Pattern.compile("煮").matcher(txt);
Matcher matcher4 = Pattern.compile("燉").matcher(txt);
Matcher matcher5 = Pattern.compile("炸").matcher(txt);
boolean a = false;
boolean b = false;
boolean c = false;
boolean d = false;
boolean e = false;
while ((a = matcher.find())|| (b = matcher2.find())||(c = matcher3.find())||( d = matcher4.find())||(e = matcher5.find())) {
String msg ="";
if(a){
msg = ":" + matcher.group() + ":";
}else if(b){
msg = ":" + matcher2.group() + ":";
}else if(c){
msg = ":" + matcher3.group() + ":";
}else if(d){
msg = ":" + matcher4.group() + ":";
}else if(e){
msg = ":" + matcher5.group() + ":";
}
System.out.println(msg);
}
只不過這樣比較麻煩,你可以自己精煉下,我想知道,你提取關鍵字是不是只是想確定是否包含,如果是你可以不用這個方法
3. java pattern 正則表達式中的 '+' 和 '*' 分別是什麼意思
普通的+,*表示 盡可能多的匹配
+?,*?多了個問號表示 盡可能 少的匹配
你舉的那個例子無專論 用什麼 結果都 是一屬樣的,假如有以下一行
<a href=\"index.html\">index</a><a href=\"chapter1.html\">chapter1</a>
如果 用<a.*href=\".*\">(.+?)</a>小括弧會匹配第二個a href標簽里的chapter1
因為a.*href中.*會一直匹配 到 第二個href前面
如果 用<a.*?href=\".*\">(.+)</a>小括弧則會匹配 從index到chapter1的所有字元 ,即(.+)從第一個<a href ...>結束 匹配 到 在同一行的最後 一個</a>前面
4. java pattern 如何匹配用逗號分隔的很復雜的表達式
按照你的要求匹配aa:bb,cc,dd:e簡化的Java正則表達式: (:?\w+,?)+
我給你個Java程序的例子,你可以參考回一下.
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassA{
publicstaticvoidmain(String[]args){
Strings="aa:bb,cc,dd:e";
Stringregex="(:?\w+,?)+";
Patternp=Pattern.compile(regex);
Matcherm=p.matcher(s);
if(m.matches()){
System.out.println(m.group());
}
}
}
運行結果答:
aa:bb,cc,dd:e
5. java正則pattern的正確用法怎麼用
public static String extractNumber(String input){
StringBuilder numberStr=new StringBuilder();
//Pattern p=Pattern.compile("\\d+");
//意思是不要在方法體內定義Pattern變數,直接像下面這樣調回用靜態方法就行了答
Matcher m=Pattern.compile("\\d+").matcher(input);
while(m.find()){
numberStr.append(m.group());
}
return numberStr.toString();
}
6. java中關於Pattern的一個方法
Java程序正則表達式Pattern對象做為匹配模式對字元串展開匹配檢查,Pattern的方法如下: static Pattern compile(String regex),用案例具體說明用法:
importjava.util.regex.*;
publicclassReplacement{
publicstaticvoidmain(String[]args)throwsException{
//生成一個Pattern,同時編譯一個正則表達式
Patternp=Pattern.compile("[/]+");
//用Pattern的split()方法把字元串按"/"分割
String[]result=p.split(
"Kevinhasseen《LEON》sevealtimes,becauseitisagoodfilm."
+"/凱文已經看過《這個殺手不太冷》幾次了,因為它是一部"
+"好電影。/名詞:凱文。");
for(inti=0;i<result.length;i++)
System.out.println(result[i]);
}
}
/**輸出結果為:
*Kevinhasseen《LEON》sevealtimes,becauseitisagoodfilm.
*凱文已經看過《這個殺手不太冷》幾次了,因為它是一部好電影。
*名詞:凱文。
*很明顯,該程序將字元串按"/"進行了分段。
**/
7. java中幾種常見的設計模式
一共23種設計模式!
按照目的來分,設計模式可以分為創建型模式、結構型模式和行為型模式。
創建型模式用來處理對象的創建過程;結構型模式用來處理類或者對象的組合;行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述。
創建型模式用來處理對象的創建過程,主要包含以下5種設計模式:
工廠方法模式(Factory Method Pattern)
抽象工廠模式(Abstract Factory Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
單例模式(Singleton Pattern)
結構型模式用來處理類或者對象的組合,主要包含以下7種設計模式:
適配器模式(Adapter Pattern)
橋接模式(Bridge Pattern)
組合模式(Composite Pattern)
裝飾者模式(Decorator Pattern)
外觀模式(Facade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述,主要包含以下11種設計模式:
責任鏈模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解釋器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
備忘錄模式(Memento Pattern)
觀察者模式(Observer Pattern)
狀態模式(State Pattern)
策略模式(Strategy Pattern)
模板方法模式(Template Method Pattern)
訪問者模式(Visitor Pattern)
推薦你一本好書:《軟體秘笈:設計模式那點事》,裡面講解的23中設計模式例子很生動,容易理解,還有JDK中設計模式應用情況,看了收獲挺大的!網路裡面搜「設計模式」,第一條中設計模式網路中就有首推該圖書,瀏覽量在20幾萬以上的,不會錯的。好東西大家一起分享!
祝你早日學會設計模式!
8. java中pattern是什麼意思
java 中抄pattern為正則表達式的編譯表示襲形式。指定為字元串的正則表達式必須首先被編譯為此類的實例。然後,可將得到的模式用於創建 Matcher 對象,依照正則表達式,該對象可以與任意字元序列匹配。執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式。例子如下:
Patternp=Pattern.compile("a*b");
Matcherm=p.matcher("aaaaab");
booleanb=m.matches();
在僅使用一次正則表達式時,可以方便地通過此類定義matches方法。此方法編譯表達式並在單個調用中將輸入序列與其匹配。語句
booleanb=Pattern.matches("a*b","aaaaab");
9. java以特定pattern分割字元串到ArrayList,pattern為n個(任意字元串但不含左右括弧字元),n=自然數
按照你的要求編寫的分割字元串到ArrayList的Java程序如下:(用到了正則表達式)
Java正則表達式為:[A-Za-z]|(\\([A-Za-z]\\))+
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class AAA {
public static void main(String[] args) {
ArrayList al=new ArrayList();
String pattern="A(B)C(D)(E)F";
String regex="[A-Za-z]|(\\([A-Za-z]\\))+";
Pattern p=Pattern.compile(regex);
Matcher m=p.matcher(pattern);
while(m.find()){
al.add(m.group());
}
System.out.print(al.toString());
}
}
運行結果:
[A, (B), C, (D)(E), F]
10. Java Pattern的用法是什麼
java 中pattern為正則表達式的編譯表示形式。指定為字元串的正則表達式必須首先被編譯為此類的實例。然後,可將得到的模式用於創建 Matcher 對象,依照正則表達式,該對象可以與任意字元序列匹配。執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式。例子如下:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches
在僅使用一次正則表達式時,可以方便地通過此類定義 matches 方法。此方法編譯表達式並在單個調用中將輸入序列與其匹配。