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