&引用;找不到符号“;java回文客户端程序出错
我尝试了所有的方法,浏览了很多论坛帖子,但是没有发现我的程序有问题。我试图在客户端类中使用程序中的方法,但它一直告诉我它找不到它。如果有人能帮我弄明白,那就太好了。以下是程序和错误:&引用;找不到符号“;java回文客户端程序出错,java,compiler-errors,client,symbols,palindrome,Java,Compiler Errors,Client,Symbols,Palindrome,我尝试了所有的方法,浏览了很多论坛帖子,但是没有发现我的程序有问题。我试图在客户端类中使用程序中的方法,但它一直告诉我它找不到它。如果有人能帮我弄明白,那就太好了。以下是程序和错误: import javax.swing.JOptionPane; public class Palindrome { private String palindrome; public Palindrome(){ } // end constructor public Palindrome(Stri
import javax.swing.JOptionPane;
public class Palindrome {
private String palindrome;
public Palindrome(){
} // end constructor
public Palindrome(String newPalindrome){
palindrome = newPalindrome;
} // end Palindrome
public static boolean isPalindrome(){
String temp = "";
boolean toBe = true; // Is a palindrome
boolean notToBe = false; // Is not a palindrome
int low = 0; // First character
int high = temp.length() - 1; // Last character
while (low < high){
if (temp.charAt(low) != temp.charAt(high))
return notToBe;
low++;
high--;
} // end while
return toBe;
}// end isPalindrome
public static String filter(){
String palindrome = "";
StringBuilder stringBuilder = new StringBuilder(); // Create a string builder
for (int i = 0; i < palindrome.length(); i++) { // Examine each char in the string to skip alphanumeric char
if (Character.isLetterOrDigit(palindrome.charAt(i))) {
stringBuilder.append(palindrome.charAt(i));
} // end if
} // end for
// Return a new filtered string
return stringBuilder.toString();
} // end filter
public String removeWhite(){
String temp = "";
temp = temp.replaceAll("\\s+","");
return temp;
} // end removeWhite
public String lowerCase(){
String temp = "";
temp = temp.toLowerCase();
return temp;
} // end toLowerCase
} // end the class
错误:
TestPalindrome.java:30: error: incompatible types
temporary = pal;
^
required: String
found: Palindrome
TestPalindrome.java:31: error: cannot find symbol
temporary.lowerCase();
^
symbol: method lowerCase()
location: variable temporary of type String
TestPalindrome.java:32: error: cannot find symbol
string.removeWhite();
^
symbol: method removeWhite()
location: variable string of type String
TestPalindrome.java:33: error: cannot find symbol
string.filter();
^
symbol: method filter()
location: variable string of type String
TestPalindrome.java:34: error: cannot find symbol
string.isPalindrome();
^
symbol: method isPalindrome()
location: variable string of type String
5 errors
不知道您使用的是什么版本的java,但没有
String.lowerCase()
方法
另外,
回文
也不能被强制转换为字符串
您试图将回文
对象分配给字符串
,这没有意义。请注意,您已将string
声明为string
,因此无法调用方法lowerCase()
或filter()
,因为它们仅为回文对象定义。也许您想将removewite()
或lowerCase()
的结果分配给字符串
回文,在这种情况下,它不能直接转换为字符串。您需要重写toString
方法,并在回文中调用该方法,使其成为字符串
您可以直接调用字符串上的trim
和toLowerCase
函数。这些函数绑定到回文
类<代码>isPalindrome
应设置为非静态。每个函数中的temp
或palindrome
局部变量都应该直接修改palindrome
成员变量。为了实现这一点,我做了一些更改
> public class Palindrome {
private String palindrome;
public Palindrome() {
} // end constructor
public Palindrome(String newPalindrome) {
palindrome = newPalindrome;
} // end Palindrome
public static boolean isPalindrome(String string) {
String temp = string;
boolean toBe = true; // Is a palindrome
boolean notToBe = false; // Is not a palindrome
int low = 0; // First character
int high = temp.length() - 1; // Last character
while (low < high) {
if (temp.charAt(low) != temp.charAt(high))
return notToBe;
low++;
high--;
} // end while
return toBe;
}// end isPalindrome
public static String filter(String string) {
String palindrome = string;
StringBuilder stringBuilder = new StringBuilder(); // Create a string
// builder
for (int i = 0; i < palindrome.length(); i++) { // Examine each char in
// the string to skip
// alphanumeric char
if (Character.isLetterOrDigit(palindrome.charAt(i))) {
stringBuilder.append(palindrome.charAt(i));
} // end if
} // end for
// Return a new filtered string
return stringBuilder.toString();
} // end filter
public String removeWhite(String string) {
String temp = string;
temp = temp.replaceAll("\\s+", "");
return temp;
} // end removeWhite
public String lowerCase(String string) {
String temp = string;
temp = temp.toLowerCase();
return temp;
} // end toLowerCase
} // end the class
您不能将Palindrome
的实例分配给String
。一旦您意识到这一点,您还将知道在temporary
上调用的所有方法都无效,因为它不是Palindrome
对象。您需要将temporary
的类型更改为Palindrome
,或者在pal
而不是temporary
上调用这些方法。
> public class Palindrome {
private String palindrome;
public Palindrome() {
} // end constructor
public Palindrome(String newPalindrome) {
palindrome = newPalindrome;
} // end Palindrome
public static boolean isPalindrome(String string) {
String temp = string;
boolean toBe = true; // Is a palindrome
boolean notToBe = false; // Is not a palindrome
int low = 0; // First character
int high = temp.length() - 1; // Last character
while (low < high) {
if (temp.charAt(low) != temp.charAt(high))
return notToBe;
low++;
high--;
} // end while
return toBe;
}// end isPalindrome
public static String filter(String string) {
String palindrome = string;
StringBuilder stringBuilder = new StringBuilder(); // Create a string
// builder
for (int i = 0; i < palindrome.length(); i++) { // Examine each char in
// the string to skip
// alphanumeric char
if (Character.isLetterOrDigit(palindrome.charAt(i))) {
stringBuilder.append(palindrome.charAt(i));
} // end if
} // end for
// Return a new filtered string
return stringBuilder.toString();
} // end filter
public String removeWhite(String string) {
String temp = string;
temp = temp.replaceAll("\\s+", "");
return temp;
} // end removeWhite
public String lowerCase(String string) {
String temp = string;
temp = temp.toLowerCase();
return temp;
} // end toLowerCase
} // end the class
>package san.org.tst1;
import java.util.Scanner;
public class TestPalindrome {
public static void main(String args[]){
Palindrome pal = new Palindrome("") ;
Scanner input = new Scanner(System.in);
System.out.print("Enter a string: ");// Prompt the user to enter a string
String temporary = (input.nextLine());
String string = ("");
// temporary.toLowerCase();
String testIsLowercase = pal.lowerCase(string);
String removeWhitetest = pal.removeWhite(string);
String filter = pal.filter(string);
boolean testIspalindrome = pal.isPalindrome(string);
System.out.println(" removing lowercase : " + testIsLowercase);
System.out.println(" removing removeWhite : " + removeWhitetest);
System.out.println(" removing Filter : " + filter);
System.out.println("Is Palindrome : " + testIspalindrome);
} // end main method
} // end the class