&引用;找不到符号“;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