Ahora bien, un "split" es separar los valores por medio de un caracter o algún valor determinado, existen programas que hacen split de archivos, es decir, los dividen en varias partes y bien, eso es lo que precisamente haremos en esta ocasión, dividir una línea dentro del archivo en varios valores, ahora si, vamos con el ejemplo:
Primero, necesitamos saber como se carga el archivo para su posterior lectura desde Java, para ello están estas dos entradas: Abrir un TextArea o Abrir un Archivo, cualquiera de las dos son válidas, para este ejemplo utilizaré una combinación de ambas. Ahora vamos con el archivo, para el ejemplo he utilizado un archivo de plano (de texto y sin extensión) llamado "carga_ejemplo", de esta forma me es mas fácil identificarlo, y en el he colocado lo siguiente:
PRUEBA:Carlitox en la Web:Java:Cualquier otra cosa:Los dos puntos separan todo:Fin de la prueba
Como podemos ver cada oración esta separada por dos puntos, ese será nuestro valor para el split. No explicaré como se carga el archivo ya que eso está en la entrada anteriormente publicada, tenemos una variable del tipo "String" en forma de arreglo, esta es la que almacenará absolutamente todos los valores de la cadena haciendo el respectivo "split", la forma en que trabaja esta función es la siguiente:
cadena.split("delimitador");
Donde cadena es la variable que contiene la cadena principal (los valores sin hacer split), y delimitador es el caracter con el que vamos a separar cada uno de esos valores en la cadena principal. Ya explicado esto vamos con el código, primero un ejemplo de como sería con un "for" para mostrar cada uno de los valores:
import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; public class split_cadena{ public static String linea; public static void main(String[] arg) throws IOException{ System.out.println("Mostrando un Split...\n"); System.out.println("By Carlitox (http://calitoxenlaweb.blogspot.com)"); File file= new File("carga_ejemplo"); BufferedReader reader=new BufferedReader(new FileReader(file)); linea=reader.readLine(); String[] arreglo_datos = linea.split(":"); System.out.println("-----------------------------------------------"); for (int i=0; i<arreglo_datos.length; i++){ System.out.println(arreglo_datos[i]); } System.out.println("-----------------------------------------------"); } }
Ahora, si modificamos un poco este ejemplo y creamos la interacción con el usuario, podemos crear una selección múltiple y mostrar la cadena según la opción que el usuario escoja, por ejemplo:
import java.util.*; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; public class split_cadena{ public static String linea, cont; public static int opcion; public static void main(String[] arg) throws IOException{ System.out.println("Mostrando un Split...\n"); System.out.println("By Carlitox (http://calitoxenlaweb.blogspot.com)"); File file= new File("carga_ejemplo"); BufferedReader reader=new BufferedReader(new FileReader(file)); linea=reader.readLine(); String[] arreglo_datos = linea.split(":"); try { Scanner leer = new Scanner(System.in); System.out.println("-----------------------------------------------"); System.out.print("Seleccione una opcion 0-5: "); opcion=leer.nextInt(); System.out.println("-----------------------------------------------"); System.out.println("La opcion "+opcion+" contiene la cadena: "+arreglo_datos[opcion]); System.out.println("-----------------------------------------------"); System.out.print("¿Desea continuar? (S/N)"); cont =leer.next(); if (cont.equalsIgnoreCase("s")) main(null); else System.exit(0); } catch (Exception e) { System.out.print("Opcion no valida: "); main(null); } } }
Y no solo eso, podemos crear miles de cosas a partir de un sencillo y práctico split, es solo cuestion de crear aplicaciones sencillas, útiles y prácticas
Recibe notificaciones por correo
7 Comentarios
Escribir ComentarioMuchas gracias pero tengo una duda
ResponderSi es un archivo .txt en que las columnas estan separadas por tabulaciones, como sería??
Si las columnas están separadas por tabulaciones solo debes reemplazar el "punto y coma" por la expresión regular "\t", con eso bastaría, y para un txt solo escribe el nombre del archivo, no importa mientras sea texto plano, por ejemplo "carga_ejemplo.txt".... Saludos!!
ResponderHola eh estado utilizando el split pero quería saber cómo guardar datos en variables lo que está después de dos puntos por ejemplo
ResponderSimbolos: 0,1
Estado inicial: q1
Estado aceptación: q1,q2
Hola mucho gusto una pregunta quería ver si me podrían ayudar estoy leyendo un txt pero necesito guardar los símbolos o caracteres después de una palabra que termina en dos puntos (:) por ejemplo
ResponderSímbolo: 0,1
Estados: q1,q2,q3
Estado inicial:q1
Gracias espero me ayuden
Hola Alex, siguiendo este ejemplo supongamos que tienes la siguiente cadena en el archivo: "1:2:3:4"... Entonces lo que debes hacer en el "for" es almacenar en variable y concatenar:
Responderfor (int i=0; i<arreglo_datos.length; i++) {
System.out.print("q"+arreglo_datos[i]+",");
}
De esta forma el resultado es "q1:q2:q3:q4"... Saludos!
Holaa necesito ayuda, me dejaron un programa donde guardo información en un archivo y como son tipo formulario de hecho es en jFrame pues acabando una persona tengo que delimitar así como lo muestras pero no sé precisamente donde ponerlo al final del código de guardar? es urgente me ayudarías mucho
ResponderLo ideal es utilizar un metodo y desde la acción del botón llamarlo:
Responderhttps://carlitoxenlaweb.blogspot.com/2010/10/ocultar-contenido.html
Lamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.
Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión