我想返回数组的值加上递归调用的返回值。
但是由于某些原因,java不希望在构造函数之后拥有方法名称。
另外,当我试图将方法转换为另一种方法时,我使用isPalindrome时会出错。
我改变了我的程序,但我仍然遇到错误。
public class isPalindrome
{
/**
* This is the main entry point for the application
* @return
*/
public static boolean main(String[] args)
{
String[] word = {"KayaK", "Desserts, I stressed"};
boolean isPalindrome(String[] array, String s, String i)
{
if(i.charAt(0) == s.charAt(0))
{
System.out.println("You entered a Palindrome");
return true;
}
else
{
System.out.println("You didn't entered a Palindrome");
}
}
try
{
System.in.read();
}
catch (Throwable t)
{
}
}
}
答案 0 :(得分:14)
您不能使用类名作为方法的名称。可以与类共享名称的唯一“方法”是构造函数。
一种解决方法是将您的班级从isPalindrome
重命名为PalindromeFinder
或其他内容。这也更符合Java命名约定。
编辑:请注意,您实际上从未在main中调用过您的方法;您尝试将局部变量分配给isPalindrome
。这实际上并没有调用该方法。您需要使用isPalindrome(...put your parameters here...)
调用该方法,并将结果存储在一个名称未使用的变量中。
另请注意,方法只能返回单个值(单个基元或单个对象)。如果你真的想要返回一个数组和一个布尔值(我不确定你这样做),你必须将它们存储在一个对象中并返回该对象。
答案 1 :(得分:0)
在java中,您不能将类的名称用作变量名。该错误告诉您,只有类的构造函数方法可能具有相同的类名,并且构造函数不能返回int(它不返回任何内容)。
答案 2 :(得分:0)
我建议将课程重命名为Palindrome或PalindromeHelper
答案 3 :(得分:0)
但我将如何返回我的数组
return isPalindrome(array, s.substring(1, s.length()-1));
就是问题所在。
如上所述,实际上并没有创建要返回的数组。提示:return new String[]...
或return
数组在哪里?
没有任何内容可以修改array
,因此无法返回它。
你可以......如果有意义的话......修改作为参数传递的数组。
如果您确实想要从isPalindrome
返回数组,则 * 也不能返回true
和false
。一个方法只能有一个声明的返回类型,而你的代码似乎“需要”两个;即String[]
和boolean
。不能这样做。
*好的,你可以......通过声明返回类型为Object
。但是这会让调用者的生活变得困难,而且设计也会非常糟糕。