java.util.Scanner.findWithinHorizon()方法實例
java.util.Scanner.findWithinHorizon(Pattern pattern,int horizon) 方法試圖找到指定圖案的下一次出現。該方法通過輸入搜索到指定的搜索地平線,在忽略分隔符。如果找到該模式的scanner 執行匹配的輸入,並返回與該模式匹配的字符串。如果冇有這樣的模式被檢測到則返回null,且scanner 的位置保持不變。此方法可能阻塞等待輸入相匹配的模式。scanner將永遠不會搜索超過超出其當前位置的horizon代碼點。請注意,匹配可能被horizon剪裁;也就是說,任意匹配的結果可能會有所不同,如果horizon一直較大。
聲明
以下是java.util.Scanner.findWithinHorizon()方法的聲明
public String findWithinHorizon(Pattern pattern,int horizon)
參數
-
pattern -- 一個字符串,指定要搜索的模式
返回值
此方法返回匹配指定模式的文本。
異常
-
IllegalStateException -- 如果此scanner已關閉
-
IllegalArgumentException -- 如果horizon為負
例子
下麵的示例演示java.util.Scanner.findWithinHorizon()方法的用法。
package com.yiibai; import java.util.*; import java.util.regex.Pattern; public class ScannerDemo { public static void main(String[] args) { String s = "Hello World! 3+3.0=6"; // create a new scanner with the specified String Object Scanner scanner = new Scanner(s); // find a pattern of 2 letters before rld, with horizon of 10 System.out.println("" + scanner.findWithinHorizon(Pattern.compile("..rld"), 10)); // find a pattern of 2 letters before rld, with horizon of 20 System.out.println("" + scanner.findWithinHorizon(Pattern.compile("..rld"), 20)); // print the rest of the string System.out.println("" + scanner.nextLine()); // close the scanner scanner.close(); } }
讓我們來編譯和運行上麵的程序,這將產生以下結果:
null World ! 3+3.0=6