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

subcadenas

Estas en el tema de subcadenas en el foro de Java en Foros del Web. Alguien me puede decir como puedo extaer una subcadena sin usar el metodo substring. necesito hacer un programa que dado la cadena sSTRING = abcd ...
  #1 (permalink)  
Antiguo 06/05/2012, 05:50
 
Fecha de Ingreso: abril-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
subcadenas

Alguien me puede decir como puedo extaer una subcadena sin usar el metodo substring.

necesito hacer un programa que dado la cadena sSTRING = abcd
pueda sacar las posibles subcadenas.
a
ab
abc
abcd
b
bc
bcd
d
  #2 (permalink)  
Antiguo 06/05/2012, 12:26
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 15 años, 8 meses
Puntos: 17
Respuesta: subcadenas

podrías usar charAt y concat para obtenerlas todas, puedes mirar la documentación de String para ver las descripciones:

http://docs.oracle.com/javase/1.4.2/...ng/String.html
  #3 (permalink)  
Antiguo 06/05/2012, 16:21
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años, 7 meses
Puntos: 69
Respuesta: subcadenas

asi es puedes usar charAt, o puedes usar toCharArray y de alli lo recorres y concatenas solo las posiciones que quieras..
__________________
De nada, hay te encargo +1...
  #4 (permalink)  
Antiguo 07/05/2012, 01:31
 
Fecha de Ingreso: abril-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: subcadenas

Osea que una vez extraido los caracteres o convertido a array de caracteres,
simplemente seria mostrar pon pantalla las posiciones concatenadas que quiera.
Si no he entendido mal.

Gracias.
  #5 (permalink)  
Antiguo 07/05/2012, 01:37
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: subcadenas

Conviertes la cadena a array de caracteres
Recorres con un bucle, y dentro de ese bucle pones otro q te vaya mostrando concatenados los elementos hasta completar el chararray.
Cuando sales del bucle interno incrementas el indice en el externo y sigues recorriendo.. (eso si usas indice).

Tendras q controlar bien la variable q vas a sacar para cada iteracion del bucle interno y luego el no pasarte de indice pero en principio no parece excesivamente complicado.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #6 (permalink)  
Antiguo 07/05/2012, 02:45
 
Fecha de Ingreso: abril-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: subcadenas

He intentado Concatenar las posciones, pero me da como un resultado un dato numerico.
Que hago mal?
  #7 (permalink)  
Antiguo 07/05/2012, 02:49
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: subcadenas

La representación real de un char es numérica

char myChar = 'a';
String charAsString = Character.toString(myChar); // esto sería lo q tienes q concatenar.

La otra opción es tener un String inicial = ""; // cadena vacia
si haces:
inicial += myChar;
Debería acoplarlo como String directamente
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #8 (permalink)  
Antiguo 07/05/2012, 10:53
 
Fecha de Ingreso: abril-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: subcadenas

haciendo pruebas, de la manera que me indicas de pasar un caracter a String
tengo que tener una variable diferente por cada posicion, no?.
  #9 (permalink)  
Antiguo 07/05/2012, 11:50
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: subcadenas

// Aqui tienes tu String
// Aqui lo conviertes a charArray
for () { // recorres el charArray
var cadena = "";
for() { // vuelves a recorrer el charArray
if(indiceSegundoBucle >= indicePrimerBucle) {
cadena += charArray[indiceSegundoBucle];
//imprimir cadena por pantalla
}
}
}

Esto sería una forma, y creo q me he pasado con las explicaciones y te lo he dado demasiado masticado. Ahora a ver si meti alguna errata por ahi y no sale :P

Te he dado la estructura, completa el contenido :D
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #10 (permalink)  
Antiguo 08/05/2012, 11:04
 
Fecha de Ingreso: abril-2012
Mensajes: 28
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: subcadenas

Hola gracias, me ha funcionado, la verdad es que estaba bien perdido,y no me hubiera salido.
Tengo una consulta sobre el funcionamiento del String nulo dentro del for.
Por lo que he comprobado, hace como de corte en la cadena para que no muestre toda la cadena seguida, o exactamente que funcione tiene
  #11 (permalink)  
Antiguo 08/05/2012, 11:42
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: subcadenas

String cadena = ""; // No es string nulo, es cadena vacía

Cada vez que iteras dentro del for exterior lo que hace es reiniciar la variable a ese valor.
es decir si tu charArray es {'H','o','l','a'} cuando hayas recorrido todas las combinaciones para 'H' y vayas a pasar a la 'o', el string con el texto posible vuelve a ponerse a cadena vacía para rellenar desde la 'o' en adelante, e igual con la 'l' y con la 'a'.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: programa, string
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 22:13.