我正在尝试编译我的代码,但收到以下错误:

Project3.java:228: error: cannot find symbol
       tokens[k] = removeCharAt(0, tokens[k]);
                   ^
symbol:   method removeCharAt(int,String)
location: class Project3
1 error


我不知道如何应用removeCharAt,这是我的代码:

import java.io.IOException;

/****************************************************************************************************************************************************

                                                               Boat Class

    by: Joseph King

    The Boat class is a superclass for the Raceboat and SailBoat classes.  The class is composed of the following:

    The boat name

    A boolean speed variable

    A method to name the boat

    A method to launch the boat and print the name

    An abstract method to go faster

    A method to increase speed

    An abstract method to go slower

    A method to decrease speed

    An abstract method to indicate the boat's speed state
****************************************************************************************************************************************************/
abstract class Boat{

    String boatName = (" ");
    boolean addSpeed = false;

    void christenBoat(String name){

        boatName = name;

    }

    void launchBoat(){

        System.out.println("The " + boatName + " is ready to launch...\n");

    }

    public abstract void goFast();

    void increaseSpeed(){

        addSpeed = true;

    }

    public abstract void goSlow();

    void decreaseSpeed(){

        addSpeed = false;

    }

    public abstract void whatIsBoatState();
}

/****************************************************************************************************************************************************

                                                             SailBoat Class

    by: Joseph King

    The SailBoat class is a subclass for the Boat Class.  The class modifies the Boat Class as follows:

    The go fast method indicates that sail boats go faster by raising the main sail

    The go slow method indicates that sail boats go slower by lowering the main sail

    The final method checks if the sail boat is going fast or slow and indicates the appropriate message
****************************************************************************************************************************************************/
class SailBoat extends Boat{

    public void goFast(){

        System.out.println("The " + boatName + " is hoisting the main!");
        addSpeed = true;

    }

    public void goSlow(){

        System.out.println("The " + boatName + " is lowering the sail!");
        addSpeed = false;

    }

    public void whatIsBoatState(){

        if(addSpeed){

            System.out.println("\tthe sail is up, ahead full!\n");

        }else{

            System.out.println("\tbut the sail is down, hoist the main!\n");

        }
    }
}

/****************************************************************************************************************************************************

                                                             RaceBoat Class

    by: Joseph King

    The RaceBoat class is a subclass for the Boat Class.  The class modifies the Boat Class as follows:

    The go fast method indicates that race boats go faster by increasing the throttle

    The go slow method indicates that race boats go slower by decreasing the throttle

    The final method checks if the race boat is going fast or slow and indicates the appropriate message
****************************************************************************************************************************************************/
class RaceBoat extends Boat{

    public void goFast(){

        System.out.println("The " + boatName + " is throttling forward!");
        addSpeed = true;

    }

    public void goSlow(){

        System.out.println("The " + boatName + " is throttling backward!");
        addSpeed = false;

    }

    public void whatIsBoatState(){

        if(addSpeed){

            System.out.println("\tshe is at full throttle, ahead full!\n");

        }else{

            System.out.println("\tbut the throttle is down, increase throttle!\n");

        }
    }
}

/****************************************************************************************************************************************************

                                                            Project3 Class

    by: Joseph King

    This class contains the main class for the program, the algorithm is as follows:

    Create references for the boat array, characters for the first and second letter and an index

    The array is then created

    The program then checks to ensure if any args parameters were supplied at the command line

    If not, it prints a statement and terminates the program

    If so the program continues and enters a loop which

    Isolates the first letter in the args parameter and ensures it is a capital letter

    If a 'B', 'C' or 'N' a race boat is created

    If not a sail boat is created

    It then isolates the second letter in the args parameter and ensures it is a capital letter

    If an 'A' or an 'E' the boat increases it speed

    If not it decreases its speed

    The program then prints out the name and state of the boat and goes back to the beginning of the loop until all args parameters are processed

    Once the loop is completed the program ends
****************************************************************************************************************************************************/
class Project3{

    public static void main(String[] args){

        System.out.println("\n");

        Boat[] boatArray;
        String result = null;
        char firstChar;
        char firstLetter;
        char secondLetter;
        int i;

        boatArray = new Boat[args.length];

        if(args.length > 0){

            for(i = 0 ; i < args.length ; i++){

                String delimiters = "[ ]";
                int limit = 0;

                String[]tokens = args[i].split(delimiters, limit);

                for( int k = 0 ; k < tokens.length ; ++k ){

                    firstChar = tokens[k].charAt(0);

                    if(firstChar == ' '){

                        break;

                    }else{

                        if(Character.isUpperCase(firstChar)){

                            break;

                        }else{

                            firstChar = Character.toUpperCase(firstChar);
                            tokens[k] = removeCharAt(tokens[k], 0);
                            tokens[k] = firstChar + tokens[k];

                        }

                        result = result + tokens[k];

                        if( k != tokens.length - 1 ){

                            break;

                        }else{

                            result = result.trim();
                            args[i] = result;
                            result = null;

                        }
                    }
                }

                // firstLetter = Character.toUpperCase(args[i].charAt(0));

                firstLetter = args[i].charAt(0);

                if((firstLetter == 'B') || (firstLetter == 'C') || (firstLetter == 'N')){

                    boatArray[i] = new RaceBoat();
                    boatArray[i].christenBoat(args[i]);

                }else{

                    boatArray[i] = new SailBoat();
                    boatArray[i].christenBoat(args[i]);

                }

                secondLetter = Character.toUpperCase(args[i].charAt(1));

                if((secondLetter == 'A') || (secondLetter == 'E')){

                    boatArray[i].increaseSpeed();

                }else{

                    boatArray[i].decreaseSpeed();

                }
            }

            for(i = 0 ; i < args.length ; i++){

                boatArray[i].launchBoat();
                boatArray[i].whatIsBoatState();

            }

        }else{

            System.out.println("\nOops... you forgot to enter ship names!\n\n\nPlease try again!");

        }

        System.out.println("\n\n(press ENTER to exit)\n\n");

        try{

            System.in.read();

        } catch(IOException e){

            return;
        }
    }
}


有人可以指出我所缺少的吗?

最佳答案

您调用方法removeCharAt,但未在任何地方声明它。换句话说,您缺少方法removeCharAt的实现。

关于java - Java中使用removeCharAt()的困难,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10612026/

10-11 09:26