I have written this code to determine duplicate words in the string.
but its not working.
plz help....
i am getting error in line 19.

import java.util.*;
import java.util.Scanner;

public class duplicate {
    public static void main(String[] args) {
         Scanner input = new Scanner(System.in);
       int n = input.nextInt();
System.out.println ("Input length of array:");

       String[] a = new String[n];

       for (int i = 0; i < n; i++)
       {
       	    System.out.println ("Input a[ " + i +"] :" );
       	    a[i] = new String(input.nextLine());
       }
        Set<String> s = new HashSet<String>();
        for (int i=0;i<n;i++ )
            if (!s.add(a))
                System.out.println("Duplicate detected: " + a);

        System.out.println(s.size() + " distinct words: " + s);
    }
}

Recommended Answers

All 3 Replies

its not working.

Do you think this is enough info to allow someone to help you?

You were getting error on line 19 because you are trying to add an array (variable a) to a HashSet of Strings. Thats why a String is expected, but you are giving it an array. Change it to if (!s.add(a[i])) .

Anyway, using Scanner.nextLine() allows users to enter multiple words per line.

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        System.out.println("Enter words separated by spaces ('.' to quit):");
        Set<String> s = new HashSet<String>();
        Scanner input = new Scanner(System.in);
        while (true)
        {
            String token = input.next();
            if (".".equals(token))
                break;
            if (!s.add(token))
                System.out.println("Duplicate detected: " + token);
        }
        System.out.println(s.size() + " distinct words:\n" + s);
    }
}

Sample input (note the dot at the end to terminate the input): one two three four five four three two one .

thanks a lot sergb......

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.