2011-05-27 69 views
0

我需要自動化如下搜索功能:自動化搜索功能 - 的Java

搜索字符串=(X *或「Y」)和Z

在進入這個搜索系統應該斷言結果。我的問題是:
1)如何在運算符中優先,因爲如果有(),那麼應該執行它,並且結果是檢查其他部分的搜索字符串。 2)termi *可以終止,終止。我們如何檢查並聲明 3)「堆棧溢出」意味着結果應該完全匹配。我們如何找到並維護 4)同樣不是運營商,我們如何主張 如果您能提供任何形式的幫助,請與我分享。

在此先感謝。

+0

難道你喜歡你搜索關鍵詞,網頁上會有很多結果嗎?像亞馬遜產品搜索頁面?另外,我不明白第一點。你能解釋一下嗎?最後,它會幫助我們,如果你可以格式化你的問題 – 2011-05-27 09:58:37

+0

謝謝你答覆A.J ...是的,就像一個搜索引擎。關於第一行,當您看到搜索字符串時,首先在括號()內執行該命令,然後結果必須再次執行其他部分。所以這裏我們使用運算符優先級概念。示例首先您需要執行(Termi *或「Claim」),其結果是您將檢查 - Result AND Court。主要是我在這裏列出了不同的運算符,比如OR,AND,NOT,(),* RegExp。我必須編寫用於搜索查詢的代碼「(X * OR」Y「)AND Z」並根據搜索字符串/查詢聲明顯示的內容 – Unni 2011-06-06 09:13:19

回答

0

一些如何管理使用StringBuffer的:)

代替存儲第一個塊和過程的結果接下來我創建基礎上,搜索字符串如下字符串命令,最後觸發新創建的命令編寫Java代碼並驗證了答案。

像whenevenever,並配備在搜索字符串我們插入& &運營商和OR ||運營商。

String[] arrSearch=searchString.split("\\s"); 
     StringBuffer sb = new StringBuffer(); 
     boolean skipFlag = false; 
     for(int i=0;i<arrSearch.length;i++){ 
      System.out.println(arrSearch[i]); 
      if(!skipFlag && arrSearch[i].startsWith("\"")){ 
       skipFlag = true; 
       continue; 
      }else if(skipFlag){ 
       if(arrSearch[i].endsWith("\"")){ 
        skipFlag = false; 
        continue; 
       }else{ 
        continue; 
       } 
      }else if(arrSearch[i].startsWith("(")){ 
       String temp = arrSearch[i].substring(1); 
       sb.append("(selenium.isTextPresent(" + temp + ")" + " "); 
      }else if(arrSearch[i].startsWith(")")){ 
       String temp = arrSearch[i].substring(0,arrSearch[i].length()-1); 
       sb.append("selenium.isTextPresent(" + temp + "))" + " "); 
      }else if(arrSearch[i].equalsIgnoreCase("AND")){ 
       sb.append("&&" + " "); 
      }else if(arrSearch[i].equalsIgnoreCase("OR")){ 
       sb.append("||" + " "); 
      }else if(arrSearch[i].equalsIgnoreCase("NOT")){ 
       sb.append("!"); 
      }else if(arrSearch[i].endsWith("*")){ 
       String temp = arrSearch[i].substring(0,arrSearch[i].length()-1); 
       sb.append("selenium.isTextPresent(\"//*[contains('" + temp + "')]\")" + " "); 
      }else{ 
       sb.append("selenium.isTextPresent(" + arrSearch[i] + ")" + " "); 
      }