2012-12-05 73 views
0

是人的一種功課......但你的幫助將不勝感激..在java中尋找一種模式

比較遺憾的是不完整的以前我question..i一個新人,所以請不要介意。 ..

我有一個字符串,例如,「你是怎麼回事你是我」和我想比較的字符串是「是」。

現在的問題是如果它看起來像「aare」那麼它被忽略,因爲它變成了一個完全不同的單詞,如果它看起來像「你是一個人」那麼它是因爲'你'會被接受爲另一種模式,'重新'爲另一種模式,如果它看起來像「uare」那麼它會被拒絕,因爲它會形成一個像空間詞這樣的特定模式......所以你也會變成'是'的一部分,因此它應該被拒絕',如果它顯示爲「你自己」,它被接受並且「你是」也被接受。

  • 「阿勒」 它被忽略
  • 「你再」 被接受
  • 「uare」 被拒絕
  • 「你AR E」 被接受
  • 「你」也接受

我嘗試以下代碼:

public class testPattern1 { 

    public static void main(String args[]) 
    { 
     String a="How aare yoar u a r e yo ar e"; 
     String compare="are"; 


     int i,temp=0; 
     for(i=0;i<a.length();i++) 
     { 
      if (a.charAt(i)==compare.charAt(0)) 
      { 
       temp=i; 
       temp++; 

       for(int d=temp;d<a.length();) 
       { 
        while(a.charAt(temp)==' ') 
        { 
         temp++; 
        } 

        if(a.charAt(temp)==compare.charAt(1)) 
        { 
         temp++; 
        } 
        else 
        { 
         break; 
        } 
        while(a.charAt(temp)==' ') 
        { 
         temp++; 
        } 
        if(a.charAt(temp)==compare.charAt(2)) 
        { 
         System.out.println("matched at"+temp); 
        } 
        else 
        { 
         System.out.println("not matched at"+temp); 
        } 

       } 

      } 


     } 

    } 

} 

希望現在你們已經明白的問題..這

+1

你可以發佈「are」的可接受和不可接受的模式列表,這將有助於弄清楚究竟應該做什麼。 – Smit

+0

@smit:yes ofcourse ..模式如下:1.如果'are'出現在'aare'或任何其他單詞中,如'hare'或'barel',即如果它與其他字母組合,不算數。 2.如果它出現在'醫生那裏',那麼它也不會被計數,因爲'整個'作爲一個整體形成一個特定的模式,如果它像'醫生那裏'那麼它會被接受。如果它看起來像'你好怎麼樣'那麼它被接受。 4.「你怎麼樣」也被接受。 – user1875666

+0

我必須說你有非常古怪的「是」的模式。但它是可以實現的。你最好的選擇是遵循@ null代碼(答案2)。爲「是」製作所有可接受事件的數組。通過字符讀取每一行,並將所有匹配項與字符串進行比較。你將不得不添加一些邏輯hack來實現一些字符串模式。如果您有任何問題,請告訴我們。祝你好運 – Smit

回答

0
String line = "How aare yoar u a r e yo ar e"; 
    String pattern="are"; 
    String arraySt[]= line.split("\\s+"); 
    for(String temp :arraySt) 
     if(temp.equals(pattern)) 
      System.out.println("Found"); 
+0

感謝您的幫助,但上面的代碼不符合我的要求。因爲如果我試圖在下面的字符串中找到'是':「你怎麼樣」。它發現它。但它不應該找到'是',因爲兩者(aare&are)是不同的詞。 – user1875666

+0

我現在更新了檢查。 – sunleo

0

檢查是否是對你合適。

public static void main(String args[]) 
{ 
String line = "how aare you a re yo u a r e you ar e you a r e"; 

String [] occurence ={" are","a re","ar e","you a r e"}; 
int total = 0; 
for(String occ:occurence){ 
    int size = (line.split(occ)).length; 
    if(line.contains(occ) && !line.startsWith(occ) && !line.endsWith(occ)){ 
     size = size-1; 
    }else if(!line.contains(occ)){ 
     size = 0; 
    } 
     System.out.println(occ+" "+ (size)); 
     total=total+size ; 

} 

System.out.println("Total Ocuurence "+total); 


}