-4

I have made a JAVA program where I have initialized a 1-D String array. I have used for loop to search any inputted String if it exists in the array(Scanner Class).

Here is the source code :-

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");
    }
}

The class even compiles successfully, but when I enter a valid string(say- Roger), the output is The name Roger does not Exists.

Please help me out with this issue, and for this I shall be grateful to you.

Thanking You,

J.K. Jha,

01.09.2018.

1 Answers1

0

You are confusing == and equals Since String is an object == just checks for if the references are same instead of actual contents You should use String.equals() instead

Changes your if condition

 for(i=0;i<6;i++)
        {
            if(s.equals(array[i]))
            {
                flag=1;
                break;
            }
        }
Vaibhav Gupta
  • 638
  • 4
  • 12