Autor
|
Tema: Ayuda con la clase scanner. (Leído 5,141 veces)
|
machosmecos
Desconectado
Mensajes: 3
|
Bueno, básicamente estoy haciendo un programa a modo de diccionario en donde cuando ponga una palabra en un textField y al darle a un botón, me localice la palabra en un archivo de texto (lo de la lectura del .txt se que es con los file reader y buffers) como el file reader y buffered reader solo leen lo que hay en el .txt sin importar que tenga, busque por el foro y encontré códigos sobre la clase scanner, que me cae de perlas, creo que es la solución a mi problema, pero solo la he visto para que imprima el resultado en consola.. mi duda es ¿como utilizo la clase scanner, de tal manera que busque en un archivo de texto lo que he puesto en un TextField, le doy a un boto y me imprima el resultado de mi búsqueda (que debe coincidir claro esta) y me lo imprima en un textArea. ejemplo, que yo tenga en el archivo.txt perro(definición , gato (definición) pato (definición) cuando escriba perro en textfield, me ponga en el textArea: perro(definición) de antemano gracias,
|
|
|
En línea
|
|
|
|
egyware
|
Y como lo harias sin la clase Scanner? Por lo que se los Reader (en especial BufferedReader) pueden leer linea por linea un archivo y ahi debes parsear tu string tomado del archivo de text. Ahora si usas la clase Scanner tambien puedes hacer lo mismo ya que tiene una funcion llamada nextLine que cumple la misma función. Ahora si quieres usar algun metodo en especial creo (por que no estoy seguro) que te puede servir findInLine ya que busca String usando delimitadores especificados por el programador. Pero sinceramente prefiero ir leyendo linea por linea y a cada linea ir extrayendo los datos ya que es más facil de entender. Un ejemplo del uso clase Scanner Scanner in = new Scanner (System. in);while(in.hasNextLine()){ //le hasta que no encuentre más lineas linea = linea.toLowerCase(); //algun tratamiento especial :P System. out. println(linea ); //imprimo resultado }
Te recomiendo que el archivo del diccionario lo guardes en alguna estructura como un arbol binario de busqueda (BST), un arbol de autovalance (AVL), un arbol Redblack, arbol Tries, tablas hash, etc... ya que buscar linealmente en el diccionario cada vez que buscan alguna palabra sera muy, pero muy lento si tienes muchas palabras ingresadas. Siempre es revisar la documentación y saber inglés http://download.oracle.com/javase/6/docs/api/java/util/Scanner.htmlSaludos!!
|
|
|
En línea
|
|
|
|
machosmecos
Desconectado
Mensajes: 3
|
Bueno, perdon por no contestar, me he estado liando con otras tareas y este programita... aun no lo he logrado, he armado mi ventana, pero no se como "capturar" lo que yo ingrese en mi textFied (y de que manera establecerlo ) publico mi codigo, para explicarme mejor: package diccionariosa;
import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*;
public class diccionariosa extends Frame implements WindowListener, ActionListener {
TextArea t; TextField f; Button b,h; Choice ch; File archivo = null; Scanner in = new Scanner(System.in); ArrayList lineas = new ArrayList(); FileReader fr = null;
diccionariosa() throws FileNotFoundException{
setLayout(null); setTitle("diccionario sinonimos / antonimos"); setBounds(300,200,400,400); addWindowListener(this);
t=new TextArea(); t.setBounds(20,150,200,200); add(t);
f=new TextField(); f.setBounds(10,40,150,20); add(f);
b=new Button("Buscar"); b.setBounds(70,80,100,20); b.addActionListener(this); add(b); h=new Button("limpiar"); h.setBounds(200,80,100,20); h.addActionListener(this); add(h);
ch=new Choice(); ch.setBounds(200,40,150,20); ch.addItem("Sinonimos"); ch.addItem("Antonimos"); add(ch);
}
public static void main(String[] args) throws FileNotFoundException { diccionariosa d = new diccionariosa(); d.setVisible(true);
}
public void windowOpened(WindowEvent e) {
}
public void windowClosing(WindowEvent e) { setVisible(false); dispose(); System.exit(0); }
public void windowClosed(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowActivated(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}
public void actionPerformed(ActionEvent e) {
if( ch.getSelectedItem().equals("Sinonimos")) { try{ archivo = new File("c:\\Sinonimos.txt"); String linea; fr = new FileReader(archivo); BufferedReader br = new BufferedReader(fr);
lineas.clear(); String busqueda= f.getText(); in.nextLine();
busqueda = in.nextLine();
while((linea = br.readLine()) != null ){ lineas.add(linea); }
for(int i=0;i<lineas.size();i++){ linea = (String)lineas.get(i); if(linea.equals(busqueda)){ t.append(linea);
i = lineas.size() } } }catch(IOException ex){}
}
else if( ch.getSelectedItem().equals("Antonimos")){ } }
}
|
|
|
En línea
|
|
|
|
|
machosmecos
Desconectado
Mensajes: 3
|
UFF perdón por no darme una vuelta por aquí, realmente he estado ocupado por fuerzas de causa mayor (tareas y problemas con mi conexion) pero en fin, logre terminar mi programa, gracias por la ayuda prestada y las aclaraciones, dejo parte del código, mi duda con scanner: Scanner in = new Scanner(System.in);
String request = f.getText(); /// "f" es mi text field donde ingreso mis datos
try { final BufferedReader reader = new BufferedReader(new FileReader("c:\\Diccionario.txt")); //mi archivo .txt donde tengo mi información String line = ""; while((line = reader.readLine())!= null){ if(line.toLowerCase().indexOf(request.toLowerCase())!= -1){ t.setText(""); t.append(""+line+"\n");/// un textarea donde imprimo mis resultados }
break; }reader.close(); }
catch (IOException ex) { }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Scanner ayuda
Diseño Gráfico
|
_loko_
|
3
|
2,046
|
29 Mayo 2005, 03:22 am
por _loko_
|
|
|
ayuda con clase Scanner -solucionado.
Java
|
carlitos.dll
|
1
|
2,629
|
13 Septiembre 2008, 20:40 pm
por carlitos.dll
|
|
|
Ayuda con la clase Stack T_T
Java
|
.Maku.
|
4
|
5,263
|
11 Mayo 2009, 02:01 am
por AlbertoBSD
|
|
|
se puede dar herencia de una clase anidada a una clase normal.
Java
|
kev4142
|
0
|
3,405
|
7 Agosto 2009, 20:46 pm
por kev4142
|
|
|
Problema de interacion entre una clase Interfaz y la clase que la llama
Java
|
yeah69
|
4
|
4,506
|
21 Mayo 2010, 06:30 am
por we4rt
|
|