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
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 =)
- Inicie sesión o regístrese para enviar comentarios
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.
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
}
}
Error número 1: Al parámetro
Error número 1:
Al parámetro
TextoBuscado
sé le pones su tipo (String
) pero NO apalabra
que por el código, veo que también es unString
.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étodocompara
.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!!