Java - Programita java

 
Vista:
sin imagen de perfil

Programita java

Publicado por Adrian (7 intervenciones) el 28/02/2016 12:02:00
Hola a todos, soy nuevo en Java y no tengo mucha idea de hacer programas básicos incluso.
Me mandaron realizar un programa que dice esto en el enunciado:

Escriba un programa en Java que en primer lugar lea de la consola dos palabras: la primera se denominará patrón y la segunda substitucion. Seguidamente el programa leerá de la consola de forma interactiva una serie de líneas de texto hasta leer una línea vacía. Por cada línea leída debe analizar si en ella se encuentra una o varias veces la palabra patrón, y si esto ocurre, mostrar la línea cambiando la palabra patrón por la palabra substitucion en todas las ocurrencias. Antes de finalizar su ejecución debe mostrar el número de líneas en las que ha encontrado la palabra patrón.

Tengo que usar los String, y también formas que permitan comparar String y sustituir palabras como .equals o .replace

Gracias!!
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 Jordi

Programita java

Publicado por Jordi (38 intervenciones) el 28/02/2016 12:17:21
Hola Adrián,

Es un programa sencillito, sólo necesitas iterar las líneas y por cada una de ellas, ejecutar la función de sustitución (replace) e imprimir la linea una vez cambiada.

Si nos pones lo que vas haciendo de código te vamos guiando.
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

Programita java

Publicado por Adrian (7 intervenciones) el 28/02/2016 12:21:07
No sé donde poner el .replace, de momento me cuenta sólo las veces que aparece la palabra patrón. Y tampoco tengo de momento el bucle para que lea las líneas de texto hasta que lea una vacía, solo para que lo haga con una.


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
38
39
40
41
42
43
44
45
import java.util.Scanner;
 
 
/**Programa que sustituye una palabra por otra que se le pasas anteriormente en una frase
 * @author Adrián del Cid López
 * @version 1.0
 */
 
public class CambiaPalabras1 {
 
	public static void main(String param[]) {
 
		String palabras;
		String patron;
		String substitucion;
		int contador=0;
 
 
		Scanner teclado = new Scanner(System.in);
 
		System.out.println("Palabra patrón: ");
		patron = teclado.nextLine();
 
		System.out.println("Palabra substitucion: ");
		substitucion = teclado.nextLine();
 
		System.out.println("Teclee la frase: ");
		palabras = teclado.nextLine();
 
		String trozos[] = palabras.split(" ");
		for(int i=0; i<trozos.length; i++)
		{
			if(trozos[i].equals(patron))
			{
				contador++;
 
			}
 
		}
 
		System.out.println("La frase es "+ +" y ha apararecido la palabra patron "+contador+" veces");
 
	}
 
}
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

Programita java

Publicado por Adrian (7 intervenciones) el 28/02/2016 13:27:01
He llegado a esto pero todavía no hace o que pide, cuenta el numero de veces que aparece la palabra patrón en cada linea y no en cuantas líneas aparece.


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
38
39
40
41
42
43
44
45
46
47
import java.util.Scanner;
 
/**Programa que sustituye una palabra por otra que se le pasas anteriormente en una frase
 * @author Adrián del Cid López
 * @version 1.0
 */
 
public class CambiaPalabras1 {
 
	public static void main(String param[]) {
 
		String palabras;
		String patron;
		String substitucion;
		int contador=0;
 
 
		Scanner teclado = new Scanner(System.in);
 
		System.out.println("Palabra patrón: ");
		patron = teclado.nextLine();
 
		System.out.println("Palabra substitucion: ");
		substitucion = teclado.nextLine();
 
		do{
 
		System.out.println("Teclee la frase: ");
		palabras = teclado.nextLine();
 
		String trozos[] = palabras.split(" ");
		for(int i=0; i<trozos.length; i++)
		{
			if(trozos[i].equals(patron))
			{
				contador++;
			}
 
		}
		System.out.println(palabras.replace(patron, substitucion));
		System.out.println("La palabra patrón ha aparecido "+contador+" veces");
 
		}while((patron != null) && (substitucion != null));
 
	}
 
}
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

Programita java

Publicado por arck (145 intervenciones) el 29/02/2016 15:26:51
pon el siguiente codigo.

1
2
3
4
5
System.out.println("La palabra patrón ha aparecido "+contador+" veces");// linea de referencia
		if (contador>0){
			contadorLineas++;
		}
		System.out.println("La palabra patrón ha aparecido en "+contadorLineas+" lineas");

y genera la variable contadorLineas junto a contador a valor 0 y prueba a ver como queda.
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

Programita java

Publicado por Adrian (7 intervenciones) el 29/02/2016 16:15:53
Gracias por la ayuda, pero según el enunciado de la práctica el "System.out.println("La palabra patrón ha aparecido en "+contadorLineas+" lineas");" debe aparecer cuando lee una línea vacía, es decir, cuando no has escrito nada en "teclee una frase", a esto también se añade que el bucle no me finaliza la aplicación cuando lee una línea va :(

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import java.util.Scanner;
 
/**Programa que sustituye una palabra por otra que se le pasas anteriormente en una frase
 * @author 
 * @version 1.0
 */
 
public class CambiaPalabras {
	/**
	 * Programa principal
	 * @param param[] palabras, patron, substitucion, contador.
	 */
 
	public static void main(String param[]) {
 
		String palabras;
		String patron;
		String substitucion;
		int contador=0;
		int contadorLineas=0;
 
 
		Scanner teclado = new Scanner(System.in);
 
		System.out.print("Palabra patrón: ");
		patron = teclado.nextLine();
		if((patron == null) || (patron.equals("")))
 
			System.out.println("Error: Debe escribir una palabra patrón");
 
		System.out.print("Palabra substitucion: ");
		substitucion = teclado.nextLine();
		if((substitucion == null) || (substitucion.equals("")))
 
			System.out.println("Error: Debe escribir una palabra substitución");
 
 
		if((patron.equals(substitucion)))
 
			System.out.println("Error: La palabra patrón y la palabra substitución no pueden ser iguales");
 
		do{
 
		System.out.print("Teclee la frase: ");
		palabras = teclado.nextLine();
 
		String trozos[] = palabras.split(" ");
			for(int i=0; i<trozos.length; i++)
			{
				if(trozos[i].equals(patron))
					contador++;
			}
		System.out.println(palabras.replace(patron, substitucion));
 
		System.out.println("La palabra patrón ha aparecido "+contador+" veces");
		if (contador>0){
			contadorLineas++;
		}
		System.out.println("La palabra patrón ha aparecido en "+contadorLineas+" lineas");
 
		}while((patron != null) && (substitucion != null));
 
		teclado.close();
 
	}
}
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

Programita java

Publicado por arck (145 intervenciones) el 29/02/2016 16:33:33
jajajaja ni lei el enunciado

¿Estas programando en Eclipse? modo DEBUG = DIOS.

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
38
39
40
41
String palabras;
		String patron;
		String substitucion;
		int contador=0;
		int contadorLineas=0;
		boolean salir = false;
 
 
		Scanner teclado = new Scanner(System.in);
 
		System.out.println("Palabra patrón: ");
		patron = teclado.nextLine();
 
		System.out.println("Palabra substitucion: ");
		substitucion = teclado.nextLine();
 
		do{
 
		System.out.println("Teclee la frase: ");
		palabras = teclado.nextLine();
		if ("".equals(palabras)){
			System.out.println("La palabra patrón ha aparecido en "+contadorLineas+" lineas");
			salir = true;
		}else{
			String trozos[] = palabras.split(" ");
			contador =0;
			for(int i=0; i<trozos.length; i++)
			{
				if(trozos[i].equals(patron))
				{
					contador++;
				}
 
			}
			System.out.println(palabras.replace(patron, substitucion));
			System.out.println("La palabra patrón ha aparecido "+contador+" veces");
			if (contador>0){
				contadorLineas++;
			}
		}
		}while(!salir);
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

Programita java

Publicado por Adrian (7 intervenciones) el 29/02/2016 16:51:38
Ahora sí!!! Gracias, de verdad.
Sí, es Eclipse.
El modo DEBUG ayuda mucho, muy útil, si sabes utilizarlo xD
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

Programita java

Publicado por arck (145 intervenciones) el 29/02/2016 17:32:42
Pues mi recomendación es que aprendas a usarlo cuanto antes.

Te va a solucionar la vida, para saber que valores tiene cada variable, que valor tiene cada expresión, por donde va el flujo de ejecución.

Céntrate en aprenderlo cuanto antes.

Este ejercicio con un uso simple del Debug lo habrías sacado facilísimo.
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

Programita java

Publicado por Adrian (7 intervenciones) el 02/03/2016 19:16:00
Y sin usar el .replace utilizando una asignación como sería el código??
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

Programita java

Publicado por arck (145 intervenciones) el 02/03/2016 21:13:54
usa split y recorre el array, cuando sea .equal a la palabra lo cambias tu por la que quieres cambiarlo y despues vuelves a formar la frase con los espacios.

Dime si me entendiste que parece un poco lioso.
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

Programita java

Publicado por Adrian (7 intervenciones) el 03/03/2016 16:35:03
Mas o menos..
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

Programita java

Publicado por arck (145 intervenciones) el 03/03/2016 17:14:40
eso es un si o un no?
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