如果循环不起作用?谁能帮我

时间:2015-11-14 07:08:13

标签: java

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的初学者。如果输入字符串中的no:of words匹配单词funny大于4但是if循环不起作用,我希望得到匹配的输出。

3 个答案:

答案 0 :(得分:2)

你在for循环中的停止条件是错误的:因为你在字符串数组v上循环,你应该在到达最后一个元素时停止。修改:

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

为:

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

答案 1 :(得分:0)

当由于此 st1.length()遍历时,我们得到ArrayIndexOutofBoundException,因此与数组长度而不是字符串长度进行比较。 这有效:

INNER JOIN

答案 2 :(得分:0)

首先,没有if循环这样的东西。你有一个for循环。

您的问题是在for循环中,检查i是否小于String st1的长度。但是,您需要检查I是否小于数组v的长度。所以,改变这个陈述:

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

到此:

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

希望这会有所帮助。