2015-11-14 66 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++) 

希望这有助于。

相关问题