[ Foro de Java ]
Hola, tengo un enunciado que pide que busque en un string los caracteres contenidos en otro, algo como esto:
String1: ?alsikjuyZB8we4 aBBe8XAZ piarBq8 Bq84Z ?
String2: ?XYZAB?
Encontrados: ?ZB?, ?BB?, ?XAZ?, "B", "B", ?Z?
No entiendo como podría realizarlo pues lo que me pide es que cree un nuevo String separando por guiones los resultados, es decir:
String resultado: "alsikjuy-ZB-8we4 a-BB-e8-XAZ- piar-B-q8 -B-q84-Z-"
La estructura básica del algoritmo, para ver qué letras coinciden, podría ser algo como:
Para cada letra de String1
Para cada letra de String2
si letra1 = letra2 entonces pertenece = true
Con eso podrías mostrar la lista de letras de String1 que aparecen en String2.
Para separarlas con guiones como te piden, tendrás que afinar un poco el algoritmo: si la letra actual pertenece y la anterior no, o bien si la actual no pertenece y la anterior sí, deberás escribir un guión antes de escribir la letra.
Tengo algo como esto, pero sigo sin consieguir que funcione...
public class StringUtils{
public static String tagger(String s1, String s2){
int count=0;
boolean ant=false;
String result="";
// loop through input and pattern
for (int i=0;i<s1.length();i++){
for(int j=0;j<s2.length();j++){
if(s1.charAt(i)==s2.charAt(j)){ //find and collect matches, start target
count=0;
if(ant=false){
result+="[target]"+s1.charAt(i);
}else{
result+=s1.charAt(i);
}
ant=true;
}else{
count++;
if(count==s2.length()){ //find and collect no-matches, end target
count=0;// count until get s2 length
if(ant=true){
result+="[endtarget]";
}else{
result+=s1.charAt(i);
}
ant=false;
}
}
}
}
return result;
}
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)