我正在制作一个程序,它将一个句子作为输入,创建这些单词的数组并显示一个单词是多余的还是不是。循环的逻辑问题
如果扫描了“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.");
}
}
你的问题是什么? – Satya
“while(b)”always while“while(false)”,你永远不会进入这个循环,b永远不会成真。 – Berger
我刚刚eddited if(s.compareTo(T [i]!= 0)into f(s.compareTo(T [i] == 0) – Aleks