循环

时间:2016-01-27 16:50:16

标签: java string loops for-loop while-loop

我正在创建一个以句子作为输入的程序,创建这些单词的数组并显示一个单词是多余的还是不是。

如果扫描“Hello Hi Hello”,程序应该通知用户存在冗余。

public static void main(String[] args) 
{
    Scanner sc = new Scanner(System.in);
    String sentence ;
    System.out.println("Enter a sentence :");
    sentence = sc.nextLine();
    String[] T = sentence.split(" "); //split the sentence at each " " into an array

    int i=0, o=0 ; //iterators

    boolean b=false; //redundancy condition

    for(String s : T) // for each String of T
    {
        System.out.println("T["+i+"] = "+ s);

        while(b) //while there's no redundancy
        {
            if(o!=i) //makes sure Strings are not at the same index.
            {

                if(s==T[o])
                {
                    b=true; //redundancy is true, while stops
                }
            }
            o++;
        }
        i+=1;
    }

    if(b)   
    {
        System.out.println("There are identical words.");
    }
    else
    {
        System.out.println("There are no identical words.");
    }

}

2 个答案:

答案 0 :(得分:0)

这是工作代码 -

        while(o<T.length && !b)
        {
            if(o!=i)
            {

                if(s.equals(T[o]))
                {
                    b=true;
                }
            }
            o++;
        }
        i+=1;
    }

答案 1 :(得分:0)

我刚修好了!

我实际上和布尔人混在一起x)我没有意识到虽然(假)不能循环但是(b == false)可以。

boolean b=true;
    for(String s : T)
    {
        System.out.println("T["+i+"] = "+ s);
        int o = 0;
        while(b && o<T.length)
        {
            if(o!=i)
            {

                if(s.compareTo(T[o])==0)
                {
                    b=false;
                }
            }
            o+=1;
        }
        i+=1;
    }

谢谢你们!