国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java 庫的建立方法及其實例(下)

2019-11-18 10:47:48
字體:
來源:轉載
供稿:網友

  public Matcher matcher(){
  
  return new Matcher(this);
  
  }
  
  public Matcher matcher(String s){
  
  Matcher m=new Matcher(this);
  
  m.setTarget(s);
  
  return m;
  
  }
  
  public Matcher matcher(char[] data,int start,int end){
  
  Matcher m=new Matcher(this);
  
  m.setTarget(data,start,end);
  
  return m;
  
  }
  
  public Matcher matcher(MatchResult res,int groupId){
  
  Matcher m=new Matcher(this);
  
  if(res instanceof Matcher){
  
  m.setTarget((Matcher)res,groupId);
  
  }
  
  else{
  
  m.setTarget(res.targetChars(),res.start(groupId)+res.targetStart(),res.length(groupId));
  
  }
  
  return m;
  
  }
  
  public Matcher matcher(Reader text,int length)throws IOException{
  
  Matcher m=new Matcher(this);
  
  m.setTarget(text,length);
  
  return m;
  
  }
  
  以上都是用來實現第一種返回matcher的方法。可以看到,這幾種實現都是通過new Matcher實例, 以this(即Pattern實例)為參數,然后根據參數不同調用Matcher.setTarget()方法。
  
  public Matcher matcher(MatchResult res,String groupName){
  
  Integer id=res.pattern()。groupId(groupName);
  
  if(id==null) throw new IllegalArgumentException("group not found:"+groupName);
  
  int group=id.intValue();
  
  return matcher(res,group);
  
  }
  
  這是第二種返回matcher的方法。
  
  從這里我們可以發現一種比較好的方法:當你需要兩個互相關聯的類,一個類的實例需要構造另一 個類的實例,可以在第一個類中用一個public方法,方法實現為調用第二個類的構造函數,并可以 用構造出來的實例調用其他方法,根據第一個類的實例的數據來設置第二個類的實例。
  
  同樣的,也有Replacer, 和Tokenizer的構造方法。
  
  public Replacer replacer(String eXPR){
  
  return new Replacer(this,expr);
  
  }
  
  /**
  
  * Returns a replacer will substitute all occurences of a pattern
  
  * through applying a user-defined substitution model.
  
  * @param model a Substitution object which is in charge for match substitution
  
  * @see Replacer
  
  */
  
  public Replacer replacer(Substitution model){
  
  return new Replacer(this,model);
  
  }
  
  public RETokenizer tokenizer(String text){
  
  return new RETokenizer(this,text);
  
  }
  
  /**
  
  * Tokenizes a specified region by an occurences of the pattern.
  
  * Note that a series of adjacent matches are regarded as a single separator.
  
  * The same as new RETokenizer(Pattern,char[],int,int);
  
  * @see RETokenizer
  
  * @see RETokenizer#RETokenizer(jregex.Pattern,char[],int,int)
  
  */
  
  public RETokenizer tokenizer(char[] data,int off,int len){
  
  return new RETokenizer(this,data,off,len);
  
  }
  
  /**
  
  * Tokenizes a specified region by an occurences of the pattern.
  
  * Note that a series of adjacent matches are regarded as a single separator.
  
  * The same as new RETokenizer(Pattern,Reader,int);
  
  * @see RETokenizer
  
  * @see RETokenizer#RETokenizer(jregex.Pattern,java.io.Reader,int)
  
  */
  
  public RETokenizer tokenizer(Reader in,int length) throws IOException{
  
  return new RETokenizer(this,in,length);
  
  }
  
  回憶一下,我在本文的開頭,曾經提到過:"一個好的庫必須是一個緊湊的關系緊密的整體,而不 是一個分散的關系松散的對象的集合。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大兴区| 东乌珠穆沁旗| 凤凰县| 广水市| 时尚| 通城县| 金溪县| 始兴县| 万荣县| 双辽市| 泊头市| 临漳县| 宜春市| 盐边县| 偃师市| 买车| 武穴市| 潮安县| 普兰县| 张家港市| 南靖县| 乐至县| 太保市| 乐平市| 江陵县| 贺州市| 道孚县| 浙江省| 高阳县| 繁昌县| 桃源县| 苏尼特右旗| 若尔盖县| 那曲县| 普安县| 台山市| 牟定县| 金堂县| 嵊泗县| 邵阳县| 葵青区|