首页 > 解决方案 > 方法不返回字符串

问题描述

我收到一个错误。该方法应返回一个字符串。我是 Java 新手,正在学习解决一个字谜问题。

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

我尝试返回真/假并得到输出,但现在出现错误。

标签: javareturnreturn-value

解决方案


您的方法 findanagaram 应返回一个字符串值。但是您只在循环内返回了值。如果条件永远得不到满足怎么办。因此,编译器需要知道要返回的值。您必须在循环之外提供一些价值。

    public String findanagaram(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;
                }
            }
        }
        return "undefined";
    }

PS:-您必须根据自己的逻辑来查找字谜,因为到目前为止您所做的似乎不起作用。


推荐阅读