【问题标题】:Method not returning a string方法不返回字符串
【发布时间】:2020-04-13 10:53:37
【问题描述】:

我收到一个错误。该方法应返回一个字符串。我是 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);
    }
}

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

【问题讨论】:

    标签: java return return-value


    【解决方案1】:

    您的方法 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:- 你必须根据你的逻辑来找到字谜,因为到目前为止你所做的似乎不起作用。

    【讨论】:

      【解决方案2】:

      注意:您查找字谜的逻辑是错误的。编译问题将通过以下代码解决 -

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

      【讨论】:

        猜你喜欢
        • 2023-03-30
        • 2020-01-22
        • 1970-01-01
        • 2015-07-17
        • 1970-01-01
        • 2012-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多