Foros del Web » Programación para mayores de 30 ;) » Java »

Manejo de Cadenas

Estas en el tema de Manejo de Cadenas en el foro de Java en Foros del Web. Hola amigos, necesito que me ayuden con lo siguiente: Estoy creando un metodo que me permita tomar ciertos caracteres de una cadena string, los caracteres ...
  #1 (permalink)  
Antiguo 14/09/2009, 16:40
 
Fecha de Ingreso: mayo-2009
Mensajes: 25
Antigüedad: 15 años
Puntos: 0
Manejo de Cadenas

Hola amigos, necesito que me ayuden con lo siguiente:

Estoy creando un metodo que me permita tomar ciertos caracteres de una cadena string, los caracteres que quiero tomar deben estar entre dos caracteres especificos, por ejemplo les explico:

Código:
String cadena = "Parrafo:, le ha abierto a+lcandeclaro+ lcandeclaro2+, según documento+ltipformpodpag+lnomaut,+el+ldiaaut+de+lmesaut+de+lyearaut,+lnumaut,+ltomo+lprotaut,+lparrafonot, siendo entendido que está regido por todas las estipulaciones contenidas en dicho contrato."
de la variable "cadena" quiero tomar todos los caracteres que esten dentro de los caracteres "+", osea que quiero tener un arreglo con esos caracteres de esta forma:

Código:
String variables[]={"lcandeclaro", "lcandeclaro2", "ltipformpodpag", "lnomaut,"}
Necesito que me den una idea mas o menos de que funcion en java puedo usar en java para traerme como especie de substrings de la cadena de aquellos valores que esten entre los signos "+"

y Gracias de antemano...!!
  #2 (permalink)  
Antiguo 15/09/2009, 02:11
 
Fecha de Ingreso: diciembre-2008
Mensajes: 100
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Manejo de Cadenas

Hola,

está la función split que puede dividir un String en varias partes. Aunque quizás lo mejor sería que reconocieras tú esos fragmentos del String. Vas leyendo carácter a carácter del String hasta que encuentras un + (estado inicial), continúas leyendo carácter a carácter (estado 2) hasta que encuentras de nuevo otro signo + (estado inicial y se anota el valor). Haciendo un pequeño autómata lo puedes conseguir. Mira este mensaje que acabo de contestar: Respuesta a desfragmentar String. Tú situación es similar a la que se plantea aquí, un poco más sencilla.

Saludos.
  #3 (permalink)  
Antiguo 15/09/2009, 04:01
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Manejo de Cadenas

Para que entiendas como es la clase String, aquí viene todo muy bien explicado:

http://www.sc.ehu.es/sbweb/fisica/cu...es1/string.htm

Puedes jugar también con substrings, leyendo todos los caracteres y tratando de formar palabras que sabes que van a estar ahí, y truncarlo en ese sitio...
  #4 (permalink)  
Antiguo 15/09/2009, 12:47
 
Fecha de Ingreso: mayo-2009
Mensajes: 25
Antigüedad: 15 años
Puntos: 0
Respuesta: Manejo de Cadenas

Hola amigos, despues de leer bien la clase String y sus metodos y de echar codigo, pude sacar una solucion puntual a mi problema, aqui os las dejo para compartirla:

[CODE]public static String[] Parrafo(String parrafo){

String caracteres[] = parrafo.split("");
String variables[] = new String[caracteres.length];
String variable;
int posInicial=0;
int posFinal=0;
int j=0;
for(int i=0; i<caracteres.length;i++){
if(posInicial!=0 || posInicial!=-1){
posInicial=parrafo.indexOf("+", posFinal+1);
posFinal=parrafo.indexOf("+", posInicial+1);
}else{
posInicial=parrafo.indexOf("+", posFinal+1);
posFinal=parrafo.indexOf("+", posInicial+1);
}
if((posFinal!=0 && posInicial!=0) && (posFinal!=-1 && posInicial!=-1)){
variable=parrafo.substring(posInicial+1, posFinal);
variables[j]=variable;
j=j+1;
}
if(posFinal==-1){
break;
}
}

return variables;
}[CODE/]

La entrade del metodo Parrafo es la siguiente:

Parrafo:, le ha abierto a+lcandeclaro++lcandeclaro2+, según documento+ltipformpodpag++lnomaut,+el+ldiaaut+de+l mesaut+de+lyearaut,++lnumaut,++ltomo++lprotaut,++l parrafonot+, siendo entendido que está regido por todas las estipulaciones contenidas en dicho contrato.

y el metodo devuelve lo siguiente:

lcandeclaro
lcandeclaro2
ltipformpodpag
lnomaut,
ldiaaut
lmesaut
lyearaut,
lnumaut,
ltomo
lprotaut,
lparrafonot

, según documento

el
de
de
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:02.