这是我在java中的代码:
import java.util.Scanner;
public class repetedstring
{
public static void main(String[] args)
{
int n = 0;
Scanner a=new Scanner(System.in);
System.out.println("Enter the value of n:");
n=a.nextInt();
String s[]=new String[n];
for (int i = 0; i <n; i++)
{
s[i]=a.nextLine();
}
for (int i = 0; i<n-1 ; i++)
{
if(s[i]==s[i+1])
{
System.out.println(s[i]);
}
else
{
System.out.println("not");
}
}
}
}
如果我将n的值设为5,则编译器只获得4个输入,而else部分仅起作用。请给我一些解决方案。
答案 0 :(得分:1)
填满阵列后,更改您拥有的内容:
ArrayList<String> strings = new ArrayList();
for(String str : s){
if(strings.contains(str){
System.out.println(str);
} else {
strings.add(str);
System.out.println("not");
}
}
这将检查数组中任何位置的重复字符串,而不是连续两行中的重复字符串 如果您需要使用数组并且无法使用ArrayList,请尝试使用:
for(int i = 0; i < s.length; i++){
for(int j = i + 1; j < s.length; j++){
if(s[i].equals(s[j]){
System.out.println(s[i]);
} else {
System.out.println("not");
}
}
}