猿问

在 JAVA 中搜索字符串数组中的元素?

我制作了一个 JAVA 程序,在其中初始化了一个1-D String array。我已经使用for循环来搜索任何输入的字符串,如果它存在于数组(扫描仪类)中。


这是源代码:-


import java.util.*;

class search

{

    public static void main(String args[])

    {

        Scanner sc=new Scanner(System.in);

        System.out.println("Enter the name to search :-");

        String s=sc.nextLine();

        String array[]={"Roger","John","Ford","Randy","Bacon","Francis"};

        int flag=0,i;

        for(i=0;i<6;i++)

        {

            if(s==array[i])

            {

                flag=1;

                break;

            }

        }

        if(flag==1)

        System.out.println("The name "+s+" Exists");

        else

        System.out.println("The name "+s+" does not Exists");

    }

}

该类甚至可以成功编译,但是当我输入一个有效的字符串(比如 Roger)时,输出是The name Roger does not Exists。


请帮我解决这个问题,对此我将不胜感激。


神不在的星期二
浏览 292回答 1
1回答

精慕HU

你混淆了 == 和 equals 因为 String 是一个对象 == 只检查引用是否相同而不是实际内容你应该使用 String.equals() 代替改变你的 if 条件&nbsp;for(i=0;i<6;i++)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(s.equals(array[i]))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; flag=1;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }
随时随地看视频慕课网APP

相关分类

Java
我要回答