Hola compañeros:
Estoy intentando hacer un codigo que estraiga de una cadena las palabras que empiecen por otra cadena.
Por ejemplo "casota,agua,casita,macarena" y en otra cadena "cas", pues que me saque casota y casita.
Hasta ahora tengo esto y no se como seguir :-\
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication1;
/**
*
* @author JUSEF
*/
public class JavaApplication1 {
/**
* @param args the command line arguments
* @return
*/
public static void main(String[] args) {
String cadena = "hola holita hooll macarena";
String cad = "hol";
String result = "";
String espacio = "";
int c = 0;
for (int i=0; i < cad.length(); i++){
if (cadena.charAt(i) == cad.charAt(i)){
result += cadena.charAt(i);
}else{
break;
}
}
System.out.println(result);
}
}
Como sigo?? Se me ocurre que con un split o un substring contar hasta el espacio, (de ahi la variable espacio), una ayudita.
//Autor: 1mpuls0
public class Extract {
public static void main(String args[]) {
String string = "casota, agua, casita, macarena, casco";
String key = "cas";
String separator = ",";
String result = "";
String[] array = string.split(",");
for (int index = 0; index < array.length; index++) {
if(array[index].trim().startsWith(key)) {
result+=array[index]+separator;
}
}
System.out.println(result);
}
}
Gracias Darhius, pero asi lo hice en clase y me lleve una colleja por hacerlo con arrays :-(
El tema es que tenemos que hacerlo sin arrays para practicar con substring, indexOf y charAt´s. De hecho luego tenemos que extraer fechas sin expresiones regulares tipo
ñafdjasñlfkg28/10/2009ñlgkfasfdgadsñfl21/12/2001asfdga
pretendiendo que cojamos las barras como "punto de parada" y cojamos -2 y +8.
Donde me lío es cuando se encuentra el prefijo, como adjunto el resto de letras, y como hago que siga leyendo.
Le he dado un millon de vueltas al for pero no doy con la forma.
Gracias nuevamente.
Ah! ps no dices! xD
Es lo único que se me ocurre :/ no me gusta mucho pero por el momento es funcional.
//Autor Darhius929
String text = "casota, agua, casita, macarena, casco";
int countChar = 0;
char separator = ',';
String result = "";
String key = "cas";
int index = 0;
do {
++countChar;
++index;
index = text.indexOf(separator, index);
} while (index != -1);
index = 0;
int endIndex = 0;
for (int i = 0; i < countChar; i++) {
endIndex = text.indexOf(separator, index);
if (endIndex == -1) {
if(text.substring(index).trim().startsWith(key))
result+= text.substring(index);
}
else {
if(text.substring(index, endIndex).trim().startsWith(key))
result+= text.substring(index, endIndex);
}
index = endIndex + 1;
}
System.out.println(result);
Gracias Darhius, me pongo a juguetear con el para comprender bien como funciona cada segmento.
Otra vez, gracias. ;-)