user2407152
user2407152

Reputation: 49

How to output binary search answer?

I get the error message cannot find symbol, symbol: method books(int[], int) when I try to compile the following code.

For further explanation about what I want the code to do, see below the code.

public class books {

        public void main(String[] args) {

            int searchValue = 0, index;
            int refNum[] = new int[4]; // the array

            refNum[0] = 4; //numbers to refer to (aka to find)
            refNum[1] = 6;
            refNum[2] = 10;
            refNum[3] = 12;
            refNum[4] = 14;                

            int input = Integer.parseInt(enterValue.getText()); //takes user's input
            for (int x = 0; x < refNum.length; x++) {
                    refNum[x] = input; //Tells refNum value to be
            }

            searchValue = input;
            index = books(refNum, searchValue); //"books" is underlined
                if (index != -1) { 
                    binarySearchField.setText("We found: " + index);
                } else {
                    binarySearchField.setText("Sorry! Not Found!");
                }

public static Boolean binarySearch(String [] refNum, int left, int right, String search){
         //Boolean code for later
     }

This program uses binary search to find values stored in array after user inputs number, if they match then the item is successfully found. User inputs desired number in 'enterNumber' which is a TextField. Now in my code )which I'm 78% sure will work if it wasn't for this one little thing) there is an all important that is underlined which shouldn't be, (I've commented beside the line to show)

Now I had thought I was suppose to put the class name there, but apparently since it is underlined that is not the case. Any ideas on what I should be putting there in it's place?

And I apologize for the question may be a bit misleading on what I'm really asking, I just wasn't sure how to word the question.

Upvotes: 0

Views: 143

Answers (2)

voidMainReturn
voidMainReturn

Reputation: 3517

books is your class's name..that might be the reason you are getting this error. You can't call constructor like a method. Change class's name to Books or something else..or change method's name

Upvotes: 0

Sotirios Delimanolis
Sotirios Delimanolis

Reputation: 280112

The line

index = books(refNum, searchValue); 

seems to be underlined because you have no method called books that takes an int[] and an int as arguments in your books class definition.

Now I had thought I was suppose to put the class name there Why do you assume you have to put the class name there? Figure out what you are trying to do with this code and then you will understand what goes in that line (at least in pseudocode).

Also it seems like you have a method declared directly inside another method. That is not legal in java. If this is not the case, please show us correct code.

Upvotes: 1

Related Questions