import java.lang.String;
public class Word
{
/**
* constructs a Word with String value s
* @param s is string value of Word
*/
public Word(String s)
{
original = s;
}
/**
* reverses letters in original string
* @return a string that is a reverse of original
*/
public String reverse()
{
String temp = original;
String areverse = "";
int x;
for (x = temp.length() ; x>0 || x==0 ; x -- )
{
areverse = temp.substring(x);
}
return areverse;
}
/**
* determines is word is a palindrome
* @return true if word is a palindrome, false otherwise
*/
public boolean isPalindrome()
{
boolean flag = false;
String temp = original;
if (temp.equals(temp.reverse()))
flag = true;
return flag;
}
/**
* Alternate method to determine if word is a palindrome
* @return true if word is a palindrome, false otherwise
*/
public boolean isPalindrome2()
{
String temp = original;
int x = temp.length();
boolean flag = false;
int y = 0;
while (temp.subtring(y).equals(temp.substring(x)) && (x>0 || x==0))
{
x--;
y++;
}
if (x==0)
flag=true;
return flag;
}
private String original;
}
我必须编写这个程序,找到一个单词的反转,并以两种不同的方式确定一个单词是一个回文。我只给出了方法名称,然后给出了有关方法的注释,但方法中的所有代码都是我的。当我在第一个回文方法中使用reverse()方法时,bluej告诉我它找不到变量或方法“反向”,即使我在代码中早先定义它。我的问题是什么?感谢
答案 0 :(得分:1)
你正在对String对象" temp"调用reverse。您已在reverse
类中定义了Word
- 方法,因此您需要在Word
对象上调用它。
答案 1 :(得分:0)
问题是你要将temp设置为一个字符串,但是反向方法不是在字符串类中,而是在你的类中,但你在尝试在字符串中找到它时
temp.reverse();
你可以通过使用反向方法接受一个字符串AND并返回一个字符串来解决这个问题,它所接受的字符串是它正在反转的字符串,返回的是反向字符串。
public String reverse(String string)
然后你在你的班级中调用方法
if (temp.equals(reverse(temp)))
flag = true;
所以新的反向方法看起来像
public String reverse(String string)
{
String areverse = "";
for (int x = string.length(); x>0; x--)
{
areverse += string.charAt(x - 1);
}
return areverse;
}
答案 2 :(得分:0)
您应该使用
new StringBuilder(original).reverse().toString()
以获得相反的结果。方法逆转不存在于String类型中。