方法不返回字符串
Method not returning a string
我收到一个错误。该方法应 return 一个字符串。我是 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);
}
}
我尝试 returning true/false 并得到了输出,但现在出现错误。
您的方法 findanagaram 需要 return 一个字符串值。但是您 return 只在循环内编辑了值。如果条件永远得不到满足怎么办。因此,编译器需要知道 return 的值。您必须在循环外提供一些值。
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:- 你必须根据你的逻辑来寻找变位词,因为到目前为止你所做的似乎没有用。
注意:您查找字谜的逻辑是错误的。编译问题将通过以下代码解决 -
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;
}
我收到一个错误。该方法应 return 一个字符串。我是 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);
}
}
我尝试 returning true/false 并得到了输出,但现在出现错误。
您的方法 findanagaram 需要 return 一个字符串值。但是您 return 只在循环内编辑了值。如果条件永远得不到满足怎么办。因此,编译器需要知道 return 的值。您必须在循环外提供一些值。
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:- 你必须根据你的逻辑来寻找变位词,因为到目前为止你所做的似乎没有用。
注意:您查找字谜的逻辑是错误的。编译问题将通过以下代码解决 -
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;
}