java - 方法不返回字符串
问题描述
我收到一个错误。该方法应返回一个字符串。我是 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);
}
}
我尝试返回真/假并得到输出,但现在出现错误。
解决方案
您的方法 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:-您必须根据自己的逻辑来查找字谜,因为到目前为止您所做的似乎不起作用。
推荐阅读
- javascript - 如何将 JSX 导入 .tsx 文件(不在 React 中)?
- c++ - 运行调试器 Visual Studio 时 argv 中的 PATH
- c# - 如何在导入到 SQL Server 数据库时删除 Excel 电子表格的顶部行
- dask - config.yaml 中 dask 分布式 pod、worker、CPU 和 RAM 之间的关系
- mysql - 删除表A中不存在表B引用且后跟表C的记录
- cmake - 如何创建库的调试和发布版本
- python - 为 pandas 中的列使用唯一值
- kubernetes - Google Cloud 部署和 Kubernetes 节点 IP 地址更改
- haskell - Haskell:如何找到用于阿特金筛子的方程的整数解的数量?
- c# - 从excel导入数据也得到空行