Java - Ayuda con mi código

 
Vista:
sin imagen de perfil

Ayuda con mi código

Publicado por Jonathan Alejandro (14 intervenciones) el 14/11/2015 05:33:26
Hola, soy un novato programando y me ha surgido una duda con un programa el cual trata de buscar unas palabras en una cadena de texto, y al final imprimir una línea de texto y este funciona solo que tengo problemas cuando ingresas un texto con las palabras declaradas en las variables. Pondré el código abajo, espero de su ayuda


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.util.Scanner;
 
public class Validador{
	public static void main(String[] args) {
		String palabra;
		String palabra1 = "Todos";
		String palabra2 = "Ningun";
		String palabra3 = "Algunos";
		String palabra4 = "Algunos no";
		int contador = 0;
 
		Scanner in = new Scanner(System.in);
 
		System.out.println("Introduce la preposición categórica a evaluar: ");
		palabra = in.nextLine();
		boolean presencia = palabra.contains(palabra1);
		boolean presencia1 = palabra.contains(palabra2);
		boolean presencia2 = palabra.contains(palabra3);
		boolean presencia3 = palabra.contains(palabra4);
 
			if (presencia) {
				System.out.println("Es una afirmación universal");
				} else if (presencia1) {
					System.out.println("Es una negación universal");
					} else if (presencia2) {
						System.out.println("Es una afirmación existencial");
 
							} else {
								System.out.println("No existe en la palabra");
								}while(palabra.indexOf(palabra4)>-1) {
									palabra =palabra.substring(palabra.indexOf(palabra4) + palabra4.length(),palabra.length());
									contador++;
							}
							System.out.println("Es una negación existencial");
 
		}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con mi código

Publicado por Lawliet (303 intervenciones) el 14/11/2015 20:45:41
Hola...

No entiendo con claridad tu ejercicio, a mi punto de vista solo comparas lo que tienes con lo que escribes y viendo el código hace lo que necesitas, serías tan amable de indicar el error en que necesitas ayuda o explicar el programa para ayudarte de manera exacta en lo que necesitas.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con mi código

Publicado por Alejandro (14 intervenciones) el 14/11/2015 22:00:06
Captura-de-pantalla-308

Esto es lo que se imprime al introducir una frase que contiene la palabra "algunos no" y el problema es que solo debe de evaluar cuando se contiene la palabra "algunos" e imprimir "Es una afirmación existencial" y cuando la frase introducida contenga "algunos no" debe de imprimir "Es una negación existencial". Agradecería su ayuda y espero haber sido más claro esta vez. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con mi código

Publicado por Xampy (16 intervenciones) el 17/11/2015 10:25:31
El problema es que haces las comprobaciones de 1 en 1 y tienes que ponerlas juntas.

boolean presencia = palabra.contains(palabra1);
boolean presencia1 = palabra.contains(palabra2);
boolean presencia2 = palabra.contains(palabra3);
boolean presencia3 = palabra.contains(palabra4);

if (presencia) --> Si te fijas solo estas evaluando una de las palabras despues pones

} else if (presencia1)
Este es el caso en el que no pasa la primera pero tambien tiene que evaluar este valor

por lo tanto tienes que poner en el primer if lo que quieres que se cumpla y en el 2 poner lo que pasa si no se cumple.

y no comprendo por que pones el ultimo else. pero si te hace falta adelante.

No se si es lo que buscas no he probado el codigo.
Espro que halla sido de ayuda.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con mi código

Publicado por Lawliet (303 intervenciones) el 17/11/2015 18:05:27
Hola...

El contains, es un método que te permite saber si una cadena contiene una secuencia de caracteres especifica, esto significa significa que los caracteres que pasemos como parámetros deben tener dicha secuencia, veamos un ejemplo práctico.

1
2
3
4
5
public static void main(String[] args) {
	String palabra = "Algunos patos no vuelan";
	boolean validarPalabra = palabra.contains("Algunos no");
	System.out.println(validarPalabra);
}

Al ejecutar el código anterior nosotros tenemos como resultado false, a pesar que nuestra cadena contenga los palabras "Algunos no" que es lo que colocamos en nuestro contains, la secuencia y/o orden en que están escritas es totalmente distinta. En nuestra cadena tenemos "Algunos patos no vuelan", tenemos la palabra "patos" como intermedio por lo que obviamente nuestra secuencia "Algunos no" no existe en la cadena original. En términos léxicos podríamos decir que con el contains hacemos lo siguiente; la palabra "Algunos patos no vuelan" contiene la palabra "Algunos" seguido de la palabra "no".

Con base a esa explicación, ¿Cual crees que sea el resultado en las siguientes líneas de código.

1
2
3
4
5
6
7
8
9
public static void main(String[] args) {
	String palabra1 = "Algunos patos no vuelan porque estan heridos";
	boolean validarPalabra1 = palabra1.contains("vuelan porque");
	System.out.println(validarPalabra1);
 
	String palabra2 = "Algunos patos no vuelan porque estan heridos";
	boolean validarPalabra2 = palabra2.contains("vuelan por que");
	System.out.println(validarPalabra2);
}

Teniendo esto claro, lo demás es simple validación en tu código.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar