2015-11-14 58 views
-6
public class meaingCompare { 

    public static void main(String[] args) { 
     int cnt = 0; 
     String st1, u, st2; 
     st2 = "funny"; 
     int n = 5; 
     System.out.println("Enter the string"); 
     Scanner in=new Scanner(System.in); 
     st1 = in.nextLine(); 
     String[] v = st1.split("\\s+"); 
     for(int i = 0; i < st1.length(); i++) { 
      if(v[i].equalsIgnoreCase(st2)) 
       cnt++; 
     } 
     if(cnt>=4) 
      System.out.println(" match found"); 
    } 
} 

我只是一個初學者在java.I中想要得到輸出作爲匹配發現如果輸入字符串中的單詞no:匹配單詞funny大於4但if循環不是加工。如果循環不工作?任何人都可以幫我

+4

定義不工作,'if'不是循環, –

+0

請提供一些示例不正確的輸出和預期的輸出。 – Arc676

+1

它不能。有一個語法錯誤:缺少'{'。 – weirdpanda

回答

2

您在for循環中的停止條件是錯誤的:因爲您正在循環使用字符串數組v,您應該在到達最後一個元素時停止。修改:

for(int i=0;i<st1.length();i++) 

到:

for(int i=0;i<v.length;i++) 
0

由於這種st1.length遍歷時()我們得到ArrayIndexOutofBoundException所以用數組長度而不是字符串長度進行比較。 這工作:

所有的
public static void main(String[] args) 
    { 
     int cnt=0; 
     String st1,u,st2; 
     st2="funny"; 
     int n=5; 
      System.out.println("Enter the string"); 
      Scanner in=new Scanner(System.in); 
      st1=in.nextLine(); 
      String[]v=st1.split("\\s+"); 
      for(int i=0;i<v.length;i++) 
      { 
       if(v[i].equalsIgnoreCase(st2)) 
       cnt++; 

      } 
      if(cnt>=4) 
      System.out.println(" match found"); 

      }   
} 
+0

Thanku這麼多,現在我的程序正常工作 –

0

首先,有沒有這樣的事,作爲一個if循環。你有一個for循環。

你的問題是,在你的for循環中,你檢查是否i小於字符串st1的長度。但是,您需要檢查I是否小於數組v的長度。因此,改變這種說法:

for(int i = 0; i < st1.length(); i++) 

這樣:

for(int i = 0; i < v.length; i++) 

希望這有助於。

相關問題