Código que se lee, se almacena y genera otro
Tengo que generar el siguiente ejercicio.
Usando colecciones el problema, en pocas palabras, consiste en leer un texto en español y almacenarlo de tal manera que se pueda navegar y generar otros textos distintos a partir de éste.
Es decir, supongamos que yo tengo el siguiente texto:
Las rosas son rojas. Las violetas son azules. Las margaritas son amarillas. Mi amor por ti es tan grande como la dulce brisa. Mi pasión por ti es tan grande como la vida misma. Mi dolor por estar lejos es insoportable.
Primero necesito que mi código lo lea, luego que haga un guardado de la cantidad de veces que se lee Las, rosas, son, etc.
Visto de otra forma: Las va seguido de rosas, violetas, margaritas; son va seguido de rojas, azules, amarillas etc.
Lo que sigue de esto es una función que de forma aleatoria busque una palabra del texto recibido y a partir de esta palabra me genere un nuevo texto. Es decir digamos que la función me elige la palabra amarillas. El texto tendría que quedar :
Amarillas. Mi amor por ti es tan grande como la dulce brisa. Mi pasión por ti es tan grande como la vida misma. Mi dolor por estar lejos es insoportable. Las rosas son rojas. Las violetas son azules. Las margaritas son
ya que yo le tengo que dar un texto de aproximadamente 250 palabras y el texto mínimo a entregar es de 200 palabras.
Otro ejemplo podría ser que la función entregue Las, entonces el texto podría quedar de la siguiente manera:
Las margaritas son rojas. Las rosas son azules. Las violetas son amarillas. Mi dolor por ti es tan grande como la vida misma. Mi amor por ti es tan grande como la dulce brisa. Mi pasión por estar lejos es insoportable.
Tengo un poco de código suelto, pero no hace lo que quiero, podrían ayudarme a corregir lo que tengo y ayudar a terminarlo. Gracias de antemano.
public class ReadText {
/**
* @param args
* java.io.BufferedReader: Permite realizar lectura linea a linea desde un stream
* java.io.FileReader: Implementacion de Reader para archivos
* java.io.IOException: Indica que una de I / O excepción de algún tipo se ha producido
*/
public static void main(String[] args) {
File f = new File( "C:\\texto.txt" );
BufferedReader entrada;
String palabra = 'hola';
Integer count = 0;
Integer j = 0;
/**
* Try permite definir un bloque de sentencias para las cuales se quiere controlar excepciones
*/
try {
entrada = new BufferedReader( new FileReader( f ) );
String linea;
while(entrada.ready()){
linea = entrada.readLine();
String [] palabras = linea.split("\\s+");
while(j<palabras.length){
if(palabras[j]==palabra){
count++;
}
j++
}
}
/**
* Este método imprime una traza de la pila para este Throwable objeto en la secuencia de
* salida de error que es el valor del campo System.err
*/
System.out.println("Cantidad de ocurrencias"+count);
}catch (IOException e) {
e.printStackTrace();
}
}
}
Usando colecciones el problema, en pocas palabras, consiste en leer un texto en español y almacenarlo de tal manera que se pueda navegar y generar otros textos distintos a partir de éste.
Es decir, supongamos que yo tengo el siguiente texto:
Las rosas son rojas. Las violetas son azules. Las margaritas son amarillas. Mi amor por ti es tan grande como la dulce brisa. Mi pasión por ti es tan grande como la vida misma. Mi dolor por estar lejos es insoportable.
Primero necesito que mi código lo lea, luego que haga un guardado de la cantidad de veces que se lee Las, rosas, son, etc.
Visto de otra forma: Las va seguido de rosas, violetas, margaritas; son va seguido de rojas, azules, amarillas etc.
Lo que sigue de esto es una función que de forma aleatoria busque una palabra del texto recibido y a partir de esta palabra me genere un nuevo texto. Es decir digamos que la función me elige la palabra amarillas. El texto tendría que quedar :
Amarillas. Mi amor por ti es tan grande como la dulce brisa. Mi pasión por ti es tan grande como la vida misma. Mi dolor por estar lejos es insoportable. Las rosas son rojas. Las violetas son azules. Las margaritas son
ya que yo le tengo que dar un texto de aproximadamente 250 palabras y el texto mínimo a entregar es de 200 palabras.
Otro ejemplo podría ser que la función entregue Las, entonces el texto podría quedar de la siguiente manera:
Las margaritas son rojas. Las rosas son azules. Las violetas son amarillas. Mi dolor por ti es tan grande como la vida misma. Mi amor por ti es tan grande como la dulce brisa. Mi pasión por estar lejos es insoportable.
Tengo un poco de código suelto, pero no hace lo que quiero, podrían ayudarme a corregir lo que tengo y ayudar a terminarlo. Gracias de antemano.
public class ReadText {
/**
* @param args
* java.io.BufferedReader: Permite realizar lectura linea a linea desde un stream
* java.io.FileReader: Implementacion de Reader para archivos
* java.io.IOException: Indica que una de I / O excepción de algún tipo se ha producido
*/
public static void main(String[] args) {
File f = new File( "C:\\texto.txt" );
BufferedReader entrada;
String palabra = 'hola';
Integer count = 0;
Integer j = 0;
/**
* Try permite definir un bloque de sentencias para las cuales se quiere controlar excepciones
*/
try {
entrada = new BufferedReader( new FileReader( f ) );
String linea;
while(entrada.ready()){
linea = entrada.readLine();
String [] palabras = linea.split("\\s+");
while(j<palabras.length){
if(palabras[j]==palabra){
count++;
}
j++
}
}
/**
* Este método imprime una traza de la pila para este Throwable objeto en la secuencia de
* salida de error que es el valor del campo System.err
*/
System.out.println("Cantidad de ocurrencias"+count);
}catch (IOException e) {
e.printStackTrace();
}
}
}
Respuesta de fbluisg
1