在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]);
相反(请注意,在编写代码时,我开始与上一个元素而不是下一个元素进行比较)。不要在循环内创建扫描仪。请在之前创建它,然后在循环内使用它。另外,请查看。