Manejo de cadenas en Java. Métodos split, indexOf, substring y trim

Muchas veces nos es necesario tratar cadenas de texto, pero la mayoría de esas veces no utilizamos la cadena entera, sino que necesitamos extraer subcadenas que contienen datos relevantes.

Java tiene varios métodos para el manejo de cadenas. Los que vamos a tratar son los siguientes:

  • String[]     split(String regex)
  • int     indexOf(int ch)
  • int     indexOf(int ch, int fromIndex)
  • String     substring(int beginIndex)
  • String     substring(int beginIndex, int endIndex)
  • String     trim()

El método split devuelve un array de String. Es muy útil cuando tenemos un conjunto de elementos separados por comas. Por ejemplo:

String colores = "rojo,amarillo,verde,azul,morado,marrón";
String[] arrayColores = colores.split(",");
 
// En este momento tenemos un array en el que cada elemento es un color.
for (int i = 0; i < arrayColores.length; i++) {
	System.out.println(arrayColores[i]);
}

La salida será:
    rojo
    amarillo
    verde
    azul
    morado
    marrón

El método indexOf devuelve la primera aparición de una cadena dentro de un String. Si le pasamos dos parámetros el primero será la cadena a buscar y el segundo la posición en la que empezará a buscar.
El método substring devolverá una subcadena del String, desde la posición de inicio hasta la posición de fin. Si sólo se especifica un parámetro la subcadena contendrá desde la posición de inicio hasta el final de la cadena. Se ve más claro en el siguiente ejemplo:

String colores = "rojo,amarillo,verde,azul,morado,marrón";
 
int inicio = colores.indexOf(",");
int fin = colores.indexOf(",", inicio + 1);
 
System.out.println(colores.substring(inicio + 1, fin));
System.out.println(colores.substring(inicio + 1));

La salida será:
    amarillo
    amarillo,verde,azul,morado,marrón

Por último, el método trim devuelve una copia de la cadena, pero sin los espacios al inicio o al fin. Es bastante útil en el uso de formularios y en otras muchas ocasiones. Os dejo la prueba para vosotros.

Espero que os haya sido de ayuda.

Por favor, para consultas sobre estos métodos, abrir un tema en los foros de Java-Spain

Su voto: Nada Promedio: 4 (80 votos)

Para separar tal cual lo hace el SPLIT, puedes utilizar StringTokenizer

Hola
gracias por este articulo, es muy util y facil de entender, solo que cuando le llego el turno a trim os olvidasteis de poner un ejemplo que habria venido perfecto (como los anteriores), para acabar de entender el funcionamiento.
gracias

@Anónimo:

Como dije en el post, el ejemplo del trim os lo dejo de "deberes", pero si hay suficiente gente que lo solicite, pues terminaré por haceros caso ;).

Un saludo!

Este portal me pare muy util, ya que gente como yo que solo busca la funcion su uso y un ejemplo mas nada, ningun otro invento me parece que va al grano.
si alguienrequiere algo extra que pregunte.
Soy programador de donet, pero el mounstruo java terminó por alcansarme, por lo que muchas funciones de cadenas (en donet) lastimosamente no las veo aqui auqnue son muy útiles. espero que si falto alguna otra función que la anexen buen trabajo para el autor saludos.

Hola buenas, quería hacer una pregunta a los expertos de este foro.

Que es mejor, Java o .NET?
Gracias.

Raúl Gonzalez

haber, es como preguntar que es mejor el cielo o la tierra, entonces nacerian muchas respuestas dependiendo de cada gusto, las aves dirian el cielo y los perros dirian la tierra.

java y .net hoy por hoy son muy similares con ventajas y desvenatajas de cada lago uno es muy rapido para desarrollar .net y el otro es muy bueno para manejar a objetos.

yo te recomendaria que primero leas especificaciones tecnicas de cada uno despues tomes tu propia conclucion.

excelente respuesta pero es conclusiòn pana.

buenas tengo un problema por que al validar que un string "s" con un substring(0,1) de sapo quiere decir q agarra la "s". bueno cuando valido si uno es igual al otro no lo reconoce como la misma letra a pesar de que cuando le damos un system.out.println() no nos dan espacios extras ni nada en conclusion es el mismo caracter el codigo es asi

public void prueba(){
string s = "s"
string h;
string j= "sapo";
h= j.substring(0,1)

if(s==h){System.out.println("lol");}
}

entonces para concluir se tiene q el string s que es igual a la "s" deberia ser lo mismo q el substring de la primera posicion de la palabra sapo (es decir s) es acaso que el substring es incomparable o es hace que la posicion del string cambie a otro tipo de dato??? favor responder!!!!

El error que tienes en ese código es que estás comparando las referencias de memoria a esas variables, no el contenido en sí. Para comparar objetos de tipo String debes utilizar el método equals de este modo:

public void prueba() {
    String s = "s";
    String h;
    String j = "sapo";
    h = j.substring(0,1);
 
    if (s.equals(h)) {
        System.out.println("lol");
    }
}

Si quieres comparar cadenas independientemente de si están escritas en mayúsculas o minúsculas, utiliza el método equalsIgnoreCase.

y para decir que son distintos es decir if (x!="lol") cual seria esa funcion??

Pues sería simplemente así:

if (!x.equals("lol")) {

Hola:
tengo el siguiente problema, tengo que formatear varias string, conun formato fijo es decir, por ejmplo
str = "CARLOS" tiene que tener un largo fijo de 20. en .net y en oracle existen funciones como lpad o padleft, pero en Java no la encuentro. Espero me puedan ayudar.

el string de ejemplo debe quedar así:
str= "CARLOS "

MUCHAS GRACIAS...

Hola, la verdad es que no conozco ningún método en la api oficial de Java que tenga esa función, pero la verdad es que no se tardaría mucho en implementar. Si prefieres, he encontrado documentación de algunas implementaciones independientes: http://tinyurl.com/y88zanf y http://tinyurl.com/y8fbdap

No sé si están disponibles para descargar, pero creo que sí.

Espero haberte ayudado.

Ótimo, simples e completo
Parabens

El Método se explica pro si solo, agrégalo a tus funciones utilitarias y listo.

public static String paddingString(String s, int n, char c, boolean paddingLeft) {
 
		if (s == null) 
		{
		   char[] ch2 = new char[n];
		   Arrays.fill(ch2, c);
		   String resp = new String(ch2);
		   return resp;	
		}
 
		 int add = n - s.length();
		 if(add <= 0){
		   return s;
		 }
 
		 StringBuffer str = new StringBuffer(s);
		 char[] ch = new char[add];
		 Arrays.fill(ch, c);
		 if(paddingLeft){
		   str.insert(0, ch);
		 }else{
		   str.append(ch);
		 }
 
		 return str.toString();
	}

como puedo separar las mayusculas de los demas signos en una cadena,,,

No sé exactamente a qué te refieres, pero te puedo decir q en Java, el carácter 'a' es distinto de 'A', por lo que tendrías que buscar las mayúsculas. Si quieres explícalo un poco más a ver qué se puede hacer.

Un saludo.

separar mayusculas, y simbolos de una cadena de strings:
ya estuvo como quiera gracias aqui esta el codigo por si lo necesita alguien

char[] M = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
                        'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
public String separar (char[] letras)
    {
 
     for (int x = 0 ; x < letras.length ; x++)
        {
        int a=1; 
            for (int y = 0 ; y < M.length ; y++)
            {
                if (letras [x] == M [y])
                {
                    cad = cad + letras [x] + "'";
                    a=0;
 
                }
 
            }
            if (a==1)
            cad1 = cad1 + letras [x] + "'";
        }
        return (cad + "," + cad1);
 
    }

Gracias @lupillo, he editado tu comentario para que sea más sencillo ver el código.
Espero que haya muchas más aportaciones como la tuya.

no es muy largo para el ejercicio???? es decir separar letras de simbolos no seria tan complicado!

Bueno aca un pequeño link espero que te ayude

 
 
http://java.sun.com/j2se/1.4.2/docs/

pues muchas gracias por el aporte es perfecto ya que soy estudiante de Ing. en sistemas computacionales y el lenguaje
que uso es Java me sierve mucho aprender con ejemplos garcias.

En la carrera de ing en sistemas no aprenderas solo java, sino otros lenguajes mas,...

Demasiado buena esta pag soy estudiante de ING en computacion del Instituto Tecnologico de Costa Rica y me parece demasiado buena porque dan ejemplos entonces uno parte de ahi para crear lo propio :D XD ......

Hola
Dsculpen estoy relazando un trabajo en de programacion en java

lo que quiero es hacer un programa son pilas que compare una palabra y que me diga si es palindroma o no

pero utilizando pilas
xfavor
espero me puedan ayudar
se los agradeceria mucho

Tendrás que utilizar la clase Stack. Esta clase dispone de los métodos push y pop.

Push añade un elemento en la cima de la pila y pop lo extrae. Lo demás es trabajo tuyo, tendrás que pensar un poco.

Necesito ayuda, que hacer si quiero leer un archivo en .txt
y asignar sus valores a atributos de un objeto.
es como una tabla:

Juan 123
Oscar 233
Marco 7253
Jonathan 8362

digamos que ese es mi archivo en txt y necesito
por ejemplo que a un objeto qe vaya a crear en java
se le asigne el primer nombre como atributo
al siguiente objeto se le asignaria oscar...
y asi mismo con los numeros u__u
me urge es qe es un proyecto de orientada a objetos :(
si pueden orientarme porfaa (:

Intento realizar este ejercicio:
Escribir en Java los siguientes métodos:
 String floatToString(float numero)
Método que recibe un número de tipo float y devuelve una cadena de caracteres con su representación en coma flotante según el estándar IEEE754 de precisión simple, según se ve en el ejemplo.
 float stringToFloat(String cadenaIEEE754)
Método que recibe una cadena de caracteres con la representación de un número en coma flotante según el estándar IEEE754 de precisión simple, y devuelve un float con el valor de dicho número. (La cadena tiene el formato exacto que se ve en el ejemplo)
Ejemplo: float Cadena IEEE754
7
“0 10000001 11000000000000000000000”
-28
“1 10000011 11000000000000000000000”
7.5
“0 10000001 11100000000000000000000”
El formato de la cadena que se devuelve en el primer método y se recibe en el segundo método tiene el mismo formato: signo, exponente y mantisa separados por un espacio.
 No se pueden emplear métodos de la clase String, Integer y Byte.

Bueno, yo consigo codificar (de la primera parte), hasta el punto de q guardo en una cadena String el valor en binario del entero, y el otra el valor en binario del decimal, pero no sé como normalizar si utilizar un parse.Float les paso lo que tengo hehco de mi código, y a ver si me pueden ayudar. gracias
float numero= -4.5F;
int signo;
if (numero<0){
signo=1;
numero=numero*-1;
}
else {signo=0;
}

int entero = (int)numero;

int resto;
String a="";

int cociente=entero;
if (entero==0){
resto=cociente%2;
cociente=cociente/2;
a=resto+a;
}
do{ resto=cociente%2;
cociente=cociente/2;
a=resto+a;
}while (cociente>=1);

float decimal = numero-entero;
String b="";
do{ float aBinario=decimal*2;
int caracteres=(int)aBinario;
decimal=aBinario-caracteres;
b=caracteres+b;
} while (decimal>0);
String binario=a+"."+b;

Si alguien sabe la espuesta a esta pregunta me hará feliz

me parece que trim como enmuchos lenguajes de programacion para quein no lo sepa
String a = trim(" sdasda ");

quedara...

a = "sdasda"
sin espacios al principio ni al final de la cadena.

HOLA QUISIERA QUE ME AYUDEN CON EL CODIGO PARA CORTAR PEDASO A PEDASO UNA CADENA
EJM

CADENA="ASDAS HOLA ASDASD HOLA SDAS HOLA ";

QUE COPIES DESDE ASDAS HASTA HOLA
DEAHI SALTE Y DE NUEVO HAGA LO MISMO

Hola!!

Muchas gracias por tus ejemplos, me fueron de mucha ayuda. Cuídate!!

Hola, bueas tardes, tengo una pregunta... Tengo una cadena asi más o menos:

string a= @23#¿52?ªvarª ;

lo que necesito es sacar los datos importantes como 23 52 y var y guardarlo en diferentes cadenas de datos...lo que tengo es:
int flagi=0, flagf=0,Lmax=0,Lmin=0;
        int l= a.length();
        for (int i=0; i<l;i++){
            char q = a.charAt(i);
            if (q=='@'){
                flagi=1;
            }if (q=='#'){
                flagf=1;
            }if  ((flagf==1)&&(flagi==1)){
                datolma = a.substring(1,l-1);
            }
            flagi=0;
            flagf=0;
            for (int k=0; k<l;k++){
            q = a.charAt(k);
            if (q=='¿'){
                flagf=1;
            }if (q=='?'){
                flagf=1;
            }
            if  ((flagf==1)&&(flagi==1)){
                datolmi = a.substring(1,l-1);
            }
            }
            flagi=0;
            flagf=0;
            for (int j=0; j<l;j++){
                q = a.charAt(j);
            if (q=='ª'){
                flagf=1;
            }if (q=='º'){
                flagf=1;
            }
            if  ((flagf==1)&&(flagi==1)){
                datoba = a.substring(1,l-1);
            }
        }
    }}

mi pregunta principal es: cuando hago a.substring(1,l-1); estoy sacando los datos que necesito lo que no se es que si en a queda guardada la cadena inicial o queda guardada la nueva cadena sin los datos que le saque... gracias por su ayuda

Hola, paso a responder tu duda:

Cuando tú haces:

datoba = a.substring(1, l-1);

la cadena a no se modifica, queda tal cual estaba antes de ejecutar el método. En Java la clase String es inmutable, por lo que deberás asignar la salida del método a otro String, como bien haces.

hola soy nuebo en eclipse y quiero aprender me puedes ayudar

En estos casos lo mejor es:

http://tinyurl.com/5su7ew6

Una respuesta con mucha clase. Si señor.

Fantástico blog. Gracias.

Hola lo que quiero lograr es extraer los caracteres que
ahi despues del ultimo punto de una cadena..

Lo he intentado con aplit pero aun no lo consigop... Me pueden ayudar??

De antemano gracias...

como hago par encontrar una palabra en un texto y su ubicacion (ej "ver" empieza en 3 hasta 6)

quiero separar un string con la funcion split y la quiero separar por cualquier caracter y por salto de linia. Pongo esto:

String[] l2 = l[j].split("(\\s|\\W){1,}");

Pero nose como añadir que tambien me separe por el salto de linia, si me pudierais responder seria de gran ayuda. Muchas gracias

hola tengo un problema y es que quiero capturar una cadena pero no kiero utilizar el split (usando cracteres ) hay otra forma de obtener la cadena porfa lo necesito urgentesi alguien puede ayudarme
se lo agradeceria

hola tengo un problema.

tengo un txt con el diguiente formato:
alberto,20122
graciela,201205
pedro,20123

la cosa es que esoy haciendo un jframe para logeo pero al leer el archivo solo me recupera la primera linea del txt aqui esta el codigo.

try {
String finduser = txtuser.getText();
String findpass = String.valueOf(txtcontra.getPassword());
FileReader archivo = new FileReader("verif.txt");
BufferedReader br = new BufferedReader(archivo);
String linea ;
linea=br.readLine();
if (linea!=null)
{
do{
try{

String usuarios= linea.split(",") [0];//automaticamente me trae un array
String contras= linea.split(",") [1];

if (usuarios.equals(finduser.toString())&& contras.equals(findpass)){
JOptionPane.showMessageDialog(rootPane, "BIENVENIDO " + usuarios );
}else {
JOptionPane.showMessageDialog(rootPane, "Usuario y password incorrectos");
}

linea = br.readLine();

}catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e.toString());
}
}while(linea!=null);
br.close();
archivo.close();
}

}catch(Exception e){
JOptionPane.showMessageDialog(rootPane, e.toString());
}
espero me puedan ayudar de antemano muchas Gracias

Bueno, lo que pasa es que debo sumar todos los elementos de una fila ingresados desde un texto separados por linea.
el problema que tengo es que al intentar sumarlo me queda si lo multiplicara por 2, ya que suma dos veces la misma linea, trate con un split, pero no se usar el split que deje separadas las variables por espacio.
gracias de antemano si alguien sabe la respuesta

Yo tengo un problema, soy nuevo en java y estoy leyendo un fichero txt que esta desordenado, he logrado leer el fichero y meterlo en una arraylist de string, y despues quiero recorrer el arraylist y buscar 3 palabras y en la linea que las encuentre grabarlas en un String[] para tener una estructura y poderla usar despues como especie de reporte, pero tengo dos problemas, el primero:

cuando agrego la linea al arraylist no me deja hacer trim() porque yo se que el fichero origen tiene espacios el inicio y final de cada linea, me gustaria grabarlos al arraylist sin los espacios al inicio y fin. pongo la porcion de codigo:

private static ArrayList leerFile() throws IOException
{
String nombre = obtenerRuta() + "\\Datos\\LISTA.TXT";
String linea;
ArrayList lineaToda = new ArrayList();
String[] fichero, creacion, expiracion, ultimoAcceso;
ArrayList files = new ArrayList<>();

try (BufferedReader lee = new BufferedReader(new FileReader(nombre)))
{
//lee.readLine();
String str1=new String("0CLUSTER");

while ((linea = lee.readLine()) != null)
{
lineaToda.add(linea.split(";")); //Este si que lo deja hacer pero me es innecesario pues no viene.
// lineaToda.add(trim(linea)); NO ME LO PERMITE
iFiles.contador++;
}
System.out.println("inserto: " + lineaToda.size() + " Lineas.");
for(int i=0; i < lineaToda.size(); i++)
{

El otro problema que tengo es que quiero recorrer el arraylist y buscar las palabras usando este codigo pero asumo que entra en el for pero no hace el syso porque no puede comparar las primeras 8 posiciones con el valor de str1, si hago un for para recorrer el arraylist y listar cada linea me sale un chorizo que no entiendo. algo que al final pone esto: "@3e25a5" y no es legible.

if (lineaToda.subList(0, 7).equals(str1))
System.out.println("encontro 0CLUSTER:\t " + i + lineaToda.get(i));
}
return files;
}
}

he modelado los datos asi: con su constructor, gettings and setings y el metodo toString.

public class iFiles
{
public static int contador = 0;

private String lineaToda;

private String fichero;
private String creacion;
private String expiracion;
private String ultimoAcceso;
public iFiles(String lineaToda, String fichero, String creacion,
String expiracion, String ultimoAcceso) {
super();
this.lineaToda = lineaToda;
this.fichero = fichero;
this.creacion = creacion;
this.expiracion = expiracion;
this.ultimoAcceso = ultimoAcceso;
}
public static int getContador() {
return contador;
}
public static void setContador(int contador) {
iFiles.contador = contador;
}
public String getLineaToda() {
return lineaToda;
}
public void setLineaToda(String lineaToda) {
this.lineaToda = lineaToda;
}
public String getFichero() {
return fichero;
}
public void setFichero(String fichero) {
this.fichero = fichero;
}
public String getCreacion() {
return creacion;
}
public void setCreacion(String creacion) {
this.creacion = creacion;
}
public String getExpiracion() {
return expiracion;
}
public void setExpiracion(String expiracion) {
this.expiracion = expiracion;
}
public String getUltimoAcceso() {
return ultimoAcceso;
}
public void setUltimoAcceso(String ultimoAcceso) {
this.ultimoAcceso = ultimoAcceso;
}

@Override
public String toString() {
return "iFiles [lineaToda=" + lineaToda + ", fichero=" + fichero
+ ", creacion=" + creacion + ", expiracion=" + expiracion
+ ", ultimoAcceso=" + ultimoAcceso + "]";
}

alguna ayuda.....

Necesito asr un programa para convertir la fecha de este modo 02/04/99 a este 2 de abril de 1999
tengo la idea usando substring pero.. podrias darme algun consejo o ejemplo?

hola! m podrian ayudar??

necesito validar una cadena como esta: =5*A15+BC96-D2/10
la cual ya m sale... ahora el unico problem es que tengo q marcar los siguientes errores creo que es con un charAt pero no se como hacerlo. por ejemplo si la cadena tiene el sig. formato enviar error:

=10AB

=10AB3C1

=C1B + 5

OCUPO AYUDA: leo un archivo .txt el cual cuenta con 131 lineas, 4 columnas y la 3ra columna cuenta con numeros los cuales los tengo que obtener todos los numeros de esa columna que eso ya lo tengo hecho, lo cual los guardo en un arreglo y ordeno el arreglo. ya ordenado el arreglo tengo un ciclo donde va agarra la primera posicion del arreglo ocea agarra supongamos un numero 08210, ahora este numero lo tengo que buscar en el archivo .txt y si lo encuentra en la linea 6, que me imprima la linea 6 completa donde se encontro el numero. ya tengo una condicion donde me busca el numero y me imprime la linea pero kiero que la condicion me recorra el arreglo y que los imprima ordenados.
Porfavor quien pueda ayudarme
Dejo un segmento de codigo para que vean a que me refiero:

/*
*

package hashMap;

import java.awt.List;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.TreeSet;

public class hashMap {

private static final TreeMap MapmapOrdenado = null;

public static void main(String args[]) {

// Ordenar un Map por Key

Map miMap = new HashMap();

miMap.put( "2","pedro");
miMap.put( "1", "jesus");
miMap.put( "4", "fernanda");
miMap.put( "3","ariana");

// System.out.println(miMap);

Map mapOrdenado = new TreeMap(miMap);
Set ref = mapOrdenado.keySet();
Iterator it = ref.iterator();

while (it.hasNext()) {
System.out.println((String) it.next());

}

}
}

*/

/*
package hashMap;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class hashMap {
public static void main(String [] args){
Map map = new HashMap(); // hash table
map = new TreeMap(); // sorted map

// Agrego pares al map
addToHashMap(map, "HOLA", new Integer(10));
addToHashMap(map, "QUE", new Integer(11));
// INTENTO AGREGAR UN DUPLICADO
addToHashMap(map, "HOLA", new Integer(1));
addToHashMap(map, "TAL", new Integer(15));

// imprimo resultado
// recorro la coleccion por las claves (las palabras)
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
// Get Clave
String clave = (String) it.next();
Integer numero = (Integer) map.get(clave);
// Imprimo.
System.out.println("La clave : " + clave + " va con numero " + numero.intValue());
}

}
private static void addToHashMap(Map map, String clave, Integer valor) {
if (!map.isEmpty()){

Integer find = (Integer)map.get(clave);
if (find==null){
// No encontré la clave la agrego
map.put(clave, valor);

}
} else {
// el hash esta vacio la agrego
map.put(clave, valor);
}
}
}
// espero te sirva, saludos

*/

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Array;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.StringTokenizer;
import java.util.TreeMap;

public class Main {
public static void main(String[] args) {

// /////////////////////////////////////////////////////////////////////////////////////////////////
String ArchivoAnomalias = "C:/refo/Anomalias.D"; // se le asigna el
// nombre al archivo
String ArchivoLecturas = "C:/refo/Lecturas.D";
String ArchivoRefoleo = "C:/refo/Refoleo.D";

FileWriter fw1 = null; // la extension al archivo
FileWriter fw2 = null; // la extension al archivo
FileWriter fw3 = null; // la extension al archivo

BufferedReader leer = null;
BufferedReader leer2 = null;

// //// CREACION DE ARCHIVO lecturas ////////

// ///////////////////////// ---> lecturas LEEMOS EL ARCHIVO Y / ESCRIBIMOS <---
// ////////////////////////////////////////////////////////////////
try {

FileReader entrada = null;
FileReader entrada2 = null;

entrada = new FileReader("C:/refo/1333206.D");
int c;
int columna = 1;
int renglon = 1;
int indice = 0;
int aux;
int arreglo[] = new int[130];
String numero = "";

while ((c = entrada.read()) != -1) {

if (((char) c) == 10) {
renglon++;
columna = 1;
//
}

if (renglon >= 2 && renglon <= 131) {
// System.out.println("despues "+renglon);
if (columna > 123 && columna < 130) {
numero += String.valueOf((char) c);
}

columna += 1;

if (columna == 130) {
arreglo[indice] = Integer.valueOf(numero);
numero = "";
indice++;
// System.out.println(numero);
}
}
}
// ===========================
int i=0, j=0;
int temp;
for (i = 0; i <= arreglo.length-1; i++)
{
for (j = i + 1; j < arreglo.length; j++)
{
if (arreglo[j] < arreglo[i])
{
temp = arreglo[j];
arreglo[j] = arreglo[i];
arreglo[i] = temp;
}
}
}

for (int p = 0; p <= arreglo.length-1; p++)
{
//System.out.println(arreglo[p]);
}

// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Resetamos las variables
columna = 1;
renglon = 1;
indice = 0;
numero = "";
int contador = 1;
entrada = new FileReader("C:/refo/1333206.D");
entrada2 = new FileReader("C:/refo/1333206.D");
leer = new BufferedReader(entrada2);
leer2 = new BufferedReader(entrada);

// fw3 = new FileWriter( ArchivoLecturas );
String linea = "";

// CREAMOS EL ARCHIVO LECTURAS
fw2 = new FileWriter(ArchivoLecturas);
PrintWriter salArch = new PrintWriter(fw2);

int p = 0;

BufferedReader br = new BufferedReader(new FileReader("C:/refo/1333206.D"));
String line = "";

/*
-------------------->>>>>>aki lo busco con el numero y si me imprime la linea donde encuentra el numero, pero kiero que la condicion sea con la del arreglo.

while ( (line=br.readLine()) != null ) {
//System.out.println(line);

if(line.indexOf("103430") != -1){

System.out.println(line);
salArch.print(line); i++; }
//http://twurl.nl/j5kjroand
} */
----------->>>> aki es donde kiero que me recorra el arreglo para que me los imprima ordenadas las lineas en base a
los numeros del arreglo.
while ( (line=br.readLine()) != null ) {

line.indexOf(String.valueOf(arreglo[p] != -1));
{

System.out.println(line);
//salArch.print(line+"\n");

}
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}

public final class WdWatt implements Serializable{
public static void main(String [] args){
}
}

Hola, esperando encontrar ayuda... Soy nuevo en Java (NetBeans) y debo hacer lo siguiente...
Tengo un archivo txt con la siguiente info
-------------------------------------------
1111 2222 3333
4444 5555 66690

Este es el párrafo a extraer

777777777
--------------------------------------------
Lo que necesito es extraer el párrafo interno (cabe recalcar que el párrafo unas veces ocupa una sola línea otras veces ocupa dos y así...)

cabe señalar, además, que tengo como referencia, para extraerlo, que antes del párrafo aparece siempre el número 66690, pero específicamente este número es aleatorio, es decir, una veces es 66680, otras ves es 56659, etc...

Otra referencia que tengo es que el número que está después del párrafo siempre es el mismo 777777777

Porfísima si alguien me puede ayudar, me super urge... Estaré pendiente aquí para saber la respuesta, o si me la pueden mandar a mi email: [email protected]

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <pre>. The supported tag styles are: <foo>, [foo].

Más información sobre opciones de formato

By submitting this form, you accept the Mollom privacy policy.