I am getting an error. The method should return a string. I am new to java and am just learning to solve an anagram problem.
import java.util.*;
class FindDuplicates
{
public String findAnagram(String sc)
{
for(int i=0;i<sc.length();i++)
{
for(int j=i+1;j<sc.length();j++)
{
if(sc.charAt(i)==sc.charAt(j))
{
String a;
a="anagram";
return a;
}
else
{
String b;
b="not anagram";
return b;
}
}
}
}
public static void main(String args[])
{
Findduplicates f=new FindDuplicates();
System.out.println("Enter a string");
Scanner s=new Scanner(System.in);
String sc=s.nextLine();
f.findAnagram(sc);
}
}
I tried returning true/false and I got the output but now I am getting an error.
Note: your logic to find anagram is wrong. The compilation issue will be solved with below code -
public String findAnagram(String sc) {
String anagramOutput = "putWhateverYouWantToPut";
for (int i = 0; i < sc.length(); i++) {
for (int j = i + 1; j < sc.length(); j++) {
if (sc.charAt(i) == sc.charAt(j)) {
anagramOutput = "anagram";
} else {
anagramOutput = "not anagram";
}
return anagramOutput;
}
}
return anagramOutput;
}