Autor
|
Tema: Comparar arrays en java (Leído 5,288 veces)
|
erikcdlm
Desconectado
Mensajes: 6
|
Buenas noches,
Necesito por favor de su ayuda con el siguiente programa: Por fa, las ideas me sirven de mucho, no quiero que me hagan el programa sino que me orienten en el mismo.
Tengo que crear un programa que ingrese una oración, ejemplo: Juan juega con la bicicleta.
Esa cadena de texto la debo comparar con unos array que ya tengo definidos:
String sujeto [] = {"Juan","Ana","Diana","Pedro","Erik","Santiago","Adriana","Jenny","Luis","Jose"}; String verbos [] = {"empuja","mira","lanza","come","cuenta","paga","visita","limpia","abre","juega"}; String preposicion [] = {"a","ante","bajo","cabe","con","contra","de","desde","en","entre","hacia","hasta","para","por","según","sin","so","sobre","tras"}; String articulo [] = {"el","la","lo","los","la","las","un","una","uno","unos"}; String sustantivo [] = {"Agua","Árbol","Bicicleta","Casa","Carro","Guitarra","Juguete","Música","Pollo","Ventana"}; La idea del programa es que la cadena de texto que ingrese por consola me diga si la oración está correcta o si le hace falta algo, en este caso: sujeto, verbo, preposición, articulo o sustantivo.
Yo ya generé el siguiente main donde capturo la oración:
package talleroracion;
import com.sun.jmx.snmp.BerDecoder; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; import javax.swing.JOptionPane;
/** * * @author A80853598 */ public class TallerOracion {
/** * @param args the command line arguments */ public static void main(String[] args) throws IOException { // TODO code application logic here System.out.println("Ingrese la oración: "); BufferedReader bf = new BufferedReader (new InputStreamReader(System.in)); String or = bf.readLine(); // CodigoOracion cod = new CodigoOracion(or); // cod.analizador(or); CodigoOracion cod = new CodigoOracion(or); cod.analizador(or); //JOptionPane.showMessageDialog(null, "La oracion ingresada es: "+or); } }
De ahí paso a la clase donde transformo la cadena en otro array con el método split y lo que he hecho es hacer un ciclo for donde comparo la cadena entrante convertida en array versus el array de sujeto.
package talleroracion;
import java.util.ArrayList; import java.util.StringTokenizer;
//import static jdk.nashorn.internal.objects.NativeMath.random;
/** * * @author A80853598 */ public class CodigoOracion {
String sujeto [] = {"Juan","Ana","Diana","Pedro","Erik","Santiago","Adriana","Jenny","Luis","Jose"}; String verbos [] = {"empuja","mira","lanza","come","cuenta","paga","visita","limpia","abre","juega"}; String preposicion [] = {"a","ante","bajo","cabe","con","contra","de","desde","en","entre","hacia","hasta","para","por","según","sin","so","sobre","tras"}; String articulo [] = {"el","la","lo","los","la","las","un","una","uno","unos"}; String sustantivo [] = {"Agua","Árbol","Bicicleta","Casa","Carro","Guitarra","Juguete","Música","Pollo","Ventana"}; public CodigoOracion(String or ) { sujeto = this.sujeto; verbos = this.verbos; preposicion = this.preposicion; articulo = this.articulo; sustantivo = this.sustantivo; }
public void analizador (String or){ String cadenaporconsola [] = or.split(" ");
for(int i=0; i<sujeto.length;i++) { if(cadenaporconsola[0].equalsIgnoreCase(sujeto)) System.out.println("si");
else
System.out.println("no"); } } } }
Pero hasta ahí he llegado por que al imprimir el programa esté me muestra cada campo del array y la salida solo debe decir si la oración está bien o si le hace falta algo y que indique que le hace falta.
Por fa, las ideas me sirven de mucho, no quiero que me hagan el programa sino que me orienten en el mismo.
|
|
« Última modificación: 8 Octubre 2014, 03:58 am por erikcdlm »
|
En línea
|
|
|
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
Acuerdate de utilizar etiquetas GeSHi para tus codigos.
Quizas esto te puede ayudar, he modificado un poco las cosas que ya tienes hechas (espero que no te importe)package talleroracion; import java.util.Scanner; public class TallerOracion { public static void main (String[] args ) { try (Scanner teclado = new Scanner (System. in)) { String oracion = teclado. nextLine(); CodigoOracion cod = new CodigoOracion(oracion); cod.analizador(); } } }
package talleroracion; public class CodigoOracion { private final String sujeto [] = {"Juan", "Ana", "Diana", "Pedro", "Erik", "Santiago", "Adriana", "Jenny", "Luis", "Jose"}; private final String verbos [] = {"empuja", "mira", "lanza", "come", "cuenta", "paga", "visita", "limpia", "abre", "juega"}; private final String preposicion [] = {"a", "ante", "bajo", "cabe", "con", "contra", "de", "desde", "en", "entre", "hacia", "hasta", "para", "por", "según", "sin", "so", "sobre", "tras"}; private final String articulo [] = {"el", "la", "lo", "los", "la", "las", "un", "una", "uno", "unos"}; private final String sustantivo [] = {"Agua", "Árbol", "Bicicleta", "Casa", "Carro", "Guitarra", "Juguete", "Música", "Pollo", "Ventana"}; public CodigoOracion (String oracion ) { this.oracion = oracion.split(" "); //Separamos y almacenamos cada palabra de la frase } public int analizador() { //Con esto recorres e imprimes lo que hay en oracion for(int i=0;i<oracion.length;i++) System. out. println(oracion [i ]); /* Cambiando el tipo del meotodo a int, puedes jugar con el valor de los return Ejemplo: return 0: todo correcto return -1: falta el sujeto return -2: falta el verbo return -3: falta la preposicion return bla bla bla.... */ return 0; } }
Lo que haces tu en el constructor de la clase CodigoOrientacion no le veo mucho sentido public CodigoOracion (String or ) { sujeto = this.sujeto; verbos = this.verbos; preposicion = this.preposicion; articulo = this.articulo; sustantivo = this.sustantivo; }
Estas igualando el mismo valor, en vez de eso, he cambiado los arrays a private final, para que sean accesibles solo desde la clase, y final ya que es un valor fijo. private final String sujeto [] = {"Juan", "Ana", "Diana", "Pedro", "Erik", "Santiago", "Adriana", "Jenny", "Luis", "Jose"}; private final String verbos [] = {"empuja", "mira", "lanza", "come", "cuenta", "paga", "visita", "limpia", "abre", "juega"}; private final String preposicion [] = {"a", "ante", "bajo", "cabe", "con", "contra", "de", "desde", "en", "entre", "hacia", "hasta", "para", "por", "según", "sin", "so", "sobre", "tras"}; private final String articulo [] = {"el", "la", "lo", "los", "la", "las", "un", "una", "uno", "unos"}; private final String sustantivo [] = {"Agua", "Árbol", "Bicicleta", "Casa", "Carro", "Guitarra", "Juguete", "Música", "Pollo", "Ventana"};
He modificado el constructor para que te separe la frase cuando la introduces, de manera que cuando llamas a analizar, ya la tienes separada, (puedes cambiar eso y ponerlo donde quieras, pero ya que has puesto constructor...) public CodigoOracion (String oracion ) { this.oracion = oracion.split(" "); //Separamos y almacenamos cada palabra de la frase }
Y por ultimo, en el metodo analizador, he cambiado el tipo, te he puesto una descripcion comentada dentro del metodo, quizas te sirve para saber que es lo que hay mal en la oracion. El error lo tienes en la comparacion, si no quieres modificar nada de lo que he propuesto, simplemente cambia esto: String cadenaporconsola [] = or. split(" "); for(int i=0; i<sujeto.length;i++) { if(cadenaporconsola[0].equalsIgnoreCase(sujeto[i])) else }
En el if, comparas con sujeto, no con sujeto[i ], que es el valor que te interesa.
Saludos
|
|
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
erikcdlm
Desconectado
Mensajes: 6
|
Muchas gracias por tu ayuda, me sirve muchisimo
|
|
|
En línea
|
|
|
|
MeCraniDOS
Desconectado
Mensajes: 337
Sr. Glass
|
Muchas gracias por tu ayuda, me sirve muchisimo
De nada, si tienes alguna otra duda ya sabes
|
|
|
En línea
|
"La física es el sistema operativo del Universo" -- Steven R Garman
|
|
|
mcdiso
Desconectado
Mensajes: 1
|
quien puede pasarme el codigo me urge :S porfavor
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Comparar arrays en C
Programación C/C++
|
jc1992
|
2
|
5,121
|
8 Febrero 2013, 17:15 pm
por BatchianoISpyxolo
|
|
|
Concatenar dos arrays y comparar rellenar y mostrar ?
.NET (C#, VB.NET, ASP)
|
luis456
|
2
|
2,505
|
2 Enero 2014, 19:36 pm
por luis456
|
|
|
Comparar dos arrays
PHP
|
1mpuls0
|
3
|
2,390
|
12 Marzo 2014, 16:32 pm
por 1mpuls0
|
|
|
comparar 2 arrays en php con > o <
PHP
|
demonstrator
|
6
|
7,311
|
5 Septiembre 2014, 03:48 am
por demonstrator
|
|
|
MOVIDO: Comparar arrays en java
Programación General
|
Eleкtro
|
0
|
1,741
|
8 Octubre 2014, 04:06 am
por Eleкtro
|
|