编写程序以接收用户输入并检查其拼写

时间:2019-06-16 01:52:50

标签: java

我编写了代码来查找两个字符串是否相等。用户应该给定第一个字符串输入,并将其与预定义的第二个字符串进行比较。但是,即使我输入的内容与第二个字符串相同,输出也不正确。

import java.util.Scanner;

public class correction {

    public static void main(String[] args) {
        int i,c=0;
        String[] s1=new String[] {"F","R","I","E","N","D","S"};
        String[] s2=new String[7];
        System.out.println("enter a alphabet");
        Scanner sc=new Scanner(System.in);
        s2[0]=sc.next();
        s2[1]=sc.next();
        s2[2]=sc.next();
        s2[3]=sc.next();
        s2[4]=sc.next();
        s2[5]=sc.next();
        s2[6]=sc.next();
        int length = s1.length;
        for(i=0;i<length;i++)
        {
        if(s1.equals(s2[i]))
        c++;    
        }
        if(c==7)
            System.out.println("right way");    
        else
            System.out.println("wrong way");
    }
}

我希望输出是“正确的方式”,但输出是“错误的方式”。并且c值也为0。

3 个答案:

答案 0 :(得分:1)

当前,您正在for循环的每次迭代中将整个数组s1s2中的特定字母进行比较。相反,您应该这样做的是将s1[i]s2[i]进行比较,

int length = s1.length;
for(i=0;i<length;i++)
{
    if(s1[i].equals(s2[i]))
        c++;    
}
if(c==7)
    System.out.println("right way");    
else
    System.out.println("wrong way");

通过这种方式,您现在将s1中的每个字母与s2中的每个字母进行比较,假设您只是输入字母作为s2的输入。

答案 1 :(得分:1)

快速提示:

  1. 首先,在this方法中添加.lower()方法,以避免大写字母引起的问题。
  2. 您正在将整个.equals()数组与一个s1值进行比较,可以将s2[i]更改为s1

这里是新功能,所以请忽略糟糕的格式。

答案 2 :(得分:0)

s1是对数组的引用,而s2[i]是对字符串的引用,这就是s1.equals(s2[i])求值为false的原因,这就是{{1 }}永远不会运行。