【发布时间】:2012-02-28 22:09:20
【问题描述】:
关于以下用于检查回文的java程序,我不明白为什么它必须在定义这个类时包含private String pal;。是设计问题吗,去掉这行代码会不会有什么问题?
public class Palindrome {
private String pal;
public Palindrome(String initPal) {
pal = initPal.toUpperCase();
}
public boolean isPalindrome() {
if (pal.length() <= 1) {
return true;
}
char first = pal.charAt(0);
char last = pal.charAt(pal.length()-1);
if (Character.isLetter(first) && Character.isLetter(last)) {
if (first != last) {
return false;
}
else {
Palindrome sub = new Palindrome(pal.substring(1,pal.length()-1));
return sub.isPalindrome();
}
}
else if (!Character.isLetter(first)) {
Palindrome sub = new Palindrome(pal.substring(1));
return sub.isPalindrome();
}
else {
Palindrome sub = new Palindrome(pal.substring(0,pal.length()-1));
return sub.isPalindrome();
}
}
public static void main(String[] args) {
Palindrome p1 = new Palindrome("abcdcba.");
System.out.println(p1.isPalindrome());
}
}
【问题讨论】:
-
好吧,你的类需要一些字符串属性,所以调用者设置要分析的字符串,然后让它检查它是否是回文,对吧?适当的缩进有助于可视化类的内容
-
如果你删除它会发生什么:-) 试试吧
标签: java class constructor