簡體   English   中英

Java回文客戶端程序的“找不到符號”錯誤

[英]“Cannot find symbol” error for java palindrome client program

我嘗試了所有內容,並瀏覽了許多論壇帖子,但找不到程序的問題。 我正在嘗試在客戶端類中使用程序中的方法,並且始終告訴我找不到它。 如果有人可以幫助我解決問題,那將是很好的。 這是程序和錯誤:

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

這是客戶端代碼:

 import java.util.Scanner;
 import javax.swing.JOptionPane;

 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 = pal;
        temporary.lowerCase();
        string.removeWhite();
        string.filter();
        string.isPalindrome();

        System.out.println(string);                    
   } // end main method

} // 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

我做了幾件事使這項工作!

> 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

而testpalindrome代碼在下面。

>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

不知道您使用的Java版本,但是沒有String.lowerCase()方法。

而且Palindrome can not be cast轉換為String

您正在嘗試將Palindrome對象分配給String ,這沒有任何意義。 請注意,您已經將string聲明為String ,因此您不能調用lowerCase()filter()因為它們僅是針對Palindrome對象定義的。 也許您想將removeWhite()lowerCase()的結果分配給該String

回文式在這種情況下不能直接轉換為String。 您需要重寫toString方法並在Palindrome上調用它,以使其成為String。

您可以直接在字符串上調用trimtoLowerCase函數。 這些功能Palindrome類。 isPalindrome應該設為非靜態。 每個函數中的temppalindrome局部變量應直接修改palindrome成員變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM