0

So what I'm trying to do with this program is take two arrays, and then merge them into a third array. The main method takes the data from a specified file and then creates arrays for each line, and there are only two lines. The files is formatted like this:

11 -5 -4 -3 -2 -1 6 7 8 9 10 11
8 -33 -22 -11 44 55 66 77 88

After the arrays are created, I try to call the merge method I've created but I get this error from Netbeans:

'.class' expected

unexpected type

required: value

found: class

and I don't really know what that means, and Netbeans tries fixing it by creating other classes. All of my code is below:

import java.io.*;
import java.util.*;

public class ArrayMerge
{

/**
 * @param args the command line arguments
 */
public static void main(String[] args)
{
   File inputDataFile = new File(args[0]);
   try
   {
       Scanner inputFile = new Scanner(inputDataFile);   
       Scanner keyboardin = new Scanner(System.in);
       int aSize = inputFile.nextInt();
       int a[] = new int[aSize];
       for (int i= 0 ; i<aSize; i++ )
           {
               a[i] = inputFile.nextInt();
           }
       int bSize = inputFile.nextInt();
       int b[] = new int[bSize];
       for (int j = 0; j < bSize; j++)
           {
               b[j] = inputFile.nextInt();
           }
       int c[] = ArrayMerge.merge(a, b);
       System.out.println(Arrays.toString(c));




   }
   catch(FileNotFoundException e)
   {
       System.err.println("FileNotFoundException: " + e.getMessage());
   }



}

public static int[] merge(int[] a, int[] b) 
{
            // merge 2 sorted arrays

            int[] c = new int[a.length + b.length];
            int i=0, j=0, k=0;

            while (i<a.length && j<b.length) {
                    c[k++] = (a[i]<b[j]? a[i++]: b[j++]);
            } // end while

            while (j<b.length) {
                    c[k++] = b[j++];
            } // end while

            while (i<a.length) {
                    c[k++] = a[i++];
            } // end while

            return c;
    } // end merge()

}

Update: I solved my own issue. I forgot that arrays aren't called by their name and brackets, but merely the variable name. After realizing this, I figured out that I had to move the line that had the error into the Try{} block. I've updated the code above to reflect these changes.

1 Answer 1

1

Your merge() method is declared outside the class.

Move the closing curly bracket of the class from above the merge() method to below it.

Sign up to request clarification or add additional context in comments.

1 Comment

Check the parentheses again. merge() is in the same class. I messed up the whitespace in the copy/pasting to StackOverflow so they don't line up when you look at them, but if you count them it does.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.