Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中检查字符串数组中的连续元素_Java - Fatal编程技术网

在java中检查字符串数组中的连续元素

在java中检查字符串数组中的连续元素,java,Java,我刚开始使用数组。我的代码应该一直要求用户输入单词/字母表。但是,如果两个连续条目中输入的单词相似,程序应该显示如下所示的消息。下面是我比较两个连续字符串元素的假设。但是,我的程序不起作用 import java.util.*; public class StringArrays { public static void main(String[]args) { String[] list=new String[50]; for( int i

我刚开始使用数组。我的代码应该一直要求用户输入单词/字母表。但是,如果两个连续条目中输入的单词相似,程序应该显示如下所示的消息。下面是我比较两个连续字符串元素的假设。但是,我的程序不起作用

 import java.util.*;

public class StringArrays {
    public static void main(String[]args)
    {

        String[] list=new String[50];
        for( int i=0;i<50;i++)

        {


            Scanner a=new Scanner(System.in);
            System.out.println("Enter something: ");
            list[i]=a.next();

            if(list[i]==list[i+1])
            {
                System.out.println("Stop!");

            }
            else
            {
                System.out.println("Smart!Continue..");
            }

        }
    }
}
import java.util.*;
公共类字符串数组{
公共静态void main(字符串[]args)
{
字符串[]列表=新字符串[50];

对于(int i=0;i如果您在迭代i,则
list[i+1]
的值将为空,因为您还没有机会输入它。您希望与最后输入的元素进行比较,即
list[i-1]

还要注意边缘情况。在索引49处输入项目50时,您将检查超出数组边界的列表[50](49+1=50)。类似地,对于
list[i-1]
,在
i=0
处,
i-1
也将超出数组边界


要执行比较,需要使用String equals()方法。使用==进行比较会检查相同的引用,而不是相同的内容。

此代码的另一个问题是使用==来比较字符串。这是一种身份比较,可能无法像您预期的那样工作。请使用:

list[i].equals(list[i-1]);

相反(请注意,在编写代码时,我开始与上一个元素而不是下一个元素进行比较)。

不要在循环内创建扫描仪。请在之前创建它,然后在循环内使用它。另外,请查看。