metodo para buscar palabras??

Hola, buenas noches. Bueno apenas empecé a ver Java y una de mis tareas éra encontrar y resolver los errores en un código para poder correrlo, ya logré resolver la mayor parte, sólo me faltan 2 que me están volviendo loca alguien podría ayudarme por favor?? el codigo es

import java.io.*;

public class Numeros {

static int total=0;
static int x=0;

static int numCifras (int x){while(x!=0){x=x/10;total+=1;}return total;}

public void palabras(palabra, String TextoBuscado){
int posicion=0;
boolean mayusculas=true;
int numPalabras=0;
String token="";
StringTokenizer Busca=new StringTokenizer(TextoBusc,"\"'!., \t\n()[]?-_@");
while(Busca.hasMoreTokens()!=false) {
String palabrilla=Busca.nextToken();
if(mayusculas) {
if(palabrilla.equals(palabra)){
numPalabras++;
}else if(palabrilla.toLowerCase().equals(palabra.toLower Case())){
numPalabras++;
}
}
}
}

public boolean compara(int a, int b) {
if (a > b && (a - b) >= 2) {
return true;
} else {
return false;
}
}

public static void main(String[]args) throws IOException{
BufferedReader leer = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Introduce un numero:");
String linea = leer.readLine();
x= Integer.parseInt(linea);
System.out.println("El resultado es:");
System.out.println(numCifras);

System.out.println();

System.out.println("Introduce un texto:");
String texto = leer.readLine();
System.out.println("Introduce un una palabra:");
String token = leer.readLine();

System.out.println("El resultado es:");
System.out.println(palabras());

System.out.println();

System.out.println("Introduce un numero:");
linea = leer.readLine();
x= Integer.parseInt(linea);
System.out.println("Introduce otro numero:");
String linea = leer.readLine();
y= Integer.parseInt(linea);
System.out.println("El resultado es:");
System.out.println(compara( x, int y));

}
}

al compilar me aparece lo siguiente:

1. ERROR in Numeros.java (at line 10)
public void palabras(palabra, String TextoBuscado){
__________________ ____^
Syntax error on token ",", . expected
----------
2. ERROR in Numeros.java (at line 63)
System.out.println(compara( x, int y));
____________________ ____^^^
Syntax error on token "int", delete this token
----------

ya lo intenté un gran rato pero nada más no entiendo que tengo que hacer =(, en el primer error no sé cuál es el tipo, y en el segundo si quito "int" me da 6 errores más =S.
espero que alguien me pueda ayudar, gracias =)

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Jose Manuel

Lo que tienes que hacer es

Lo que tienes que hacer es formatear el código (darle formato) para que puedes ver de manera mas clara donde están los errores. Y por supuesto, tener bien claro como deber ser un método y las variables.

//Faltan algunos imports
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Numeros {

    static int total = 0;
    static int x = 0;

    public static int numCifras(int x) {
        while (x != 0) {
            x = x / 10;
            total += 1;
        }
        return total;
    }

    //Para que sea llamado en main debe ser estatico
    public static int palabras(String palabra, String TextoBuscado) {
       // int posicion = 0; No se usa
        boolean mayusculas = true;
        int numPalabras = 0;
      //String token = ""; No se usa
        StringTokenizer Busca = new StringTokenizer(TextoBuscado, "\"'!., \t\n()[]?-_@");
        while (Busca.hasMoreTokens() != false) {
            String palabrilla = Busca.nextToken();
            if (mayusculas) {
                if (palabrilla.equals(palabra)) {
                    numPalabras++;
                } else if (palabrilla.toLowerCase().equals(palabra.toLowerCase())) {//faltaban letras en los metodos y parentesis
                    //Case()  //Esto que hace aqui?
                    numPalabras++;
                }

                //))
                // {

                // }
            }
        }
        return numPalabras;//Hay que regresar el valor entero
    }

    //Para ser llamado en main debe ser estatico
    public static boolean compara(int a, int b) {
        if (a > b && (a - b) >= 2) {//Aqui no se que es lo que debe hacer realmente el metodo
            return true;
        } else {
            return false;
        }
    }

    //Agregar la libreria IOException
    public static void main(String[] args) throws IOException {
        BufferedReader leer = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Introduce un numero:");
        String linea = leer.readLine();
        x = Integer.parseInt(linea);
        System.out.println("El resultado es:");
        System.out.println(numCifras(x)); //numCifras es un metodo y recibe un parametro (int)

        System.out.println();

        System.out.println("Introduce un texto:");
        String texto = leer.readLine();
        System.out.println("Introduce un una palabra:");
        String token = leer.readLine();

        System.out.println("El resultado es:");
        System.out.println(palabras(token, texto));

        System.out.println();

        System.out.println("Introduce un numero:");
        linea = leer.readLine();
        int x = Integer.parseInt(linea);//Declarar el int
        System.out.println("Introduce otro numero:");
       // String linea = leer.readLine(); linea ya esta declarado arriba, solo debe usarse
        linea = leer.readLine();
        int y = Integer.parseInt(linea);//Declarar el int
        System.out.println("El resultado es:");
        System.out.println(compara(x, y));//recibe un entero, no una clase
    }
   
}

Imagen de neko069

Error número 1: Al parámetro

Error número 1:
Al parámetro TextoBuscado sé le pones su tipo (String) pero NO a palabra que por el código, veo que también es un String.

public void palabras(palabra, String TextoBuscado)

Error número 2:
Tienes que hacer lo contrario, es decir, cuando declaras la firma de un método, le colocas el tipo y nombre de tus parámetros, cuando lo ejecutas, sólo le envias tus parámetros sin tipo, es decir, el int en tu ejecución del método compara.

System.out.println(compara( x, int y));

Y ... y ya.

Ah, y sigue las recomendaciones de @José Manuel.

@Maryvellev Finalmente una

@Maryvellev Finalmente una pregunta que puede ser respondida!

=)

=)

Muchas Gracias !!!! Me fué

Muchas Gracias Jose Manuel !!!! Me fué muy útil tu respuesta, como dije antes acabo de empezar a ver java y no tenía muy claro que tenía que hacer, los otros errores éran sencillos como declarar una variable o que faltaba algún paréntesis y pues literalmente lo dice en la terminal, pero en éstos sí no sabía bien como arreglarlo, muchas gracias de nuevo =), ya compiló, por fin!!! je-je =D!!