elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema con programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con programa  (Leído 1,106 veces)
~H~

Desconectado Desconectado

Mensajes: 22



Ver Perfil
Problema con programa
« en: 7 Febrero 2014, 20:10 pm »

El método devuelve por ejemplo si metes unos strings
a = "perryABelCornitorrincoD";
b = "ABCD";

a = "perry[target]AB[endtarget]el[target]C[endtarget]ornitorrinco[target]D[endtarget]


Mete entre [target][endtarget] los que esten contenidos en el segundo String
Mi problema es cuando se repiten, el replace me los suscribe dos o más veces y entonces me sale un disparate, si alguien sabe como se soluciona o si hay otra forma más sencilla...
Gracias


Código
  1. public static String tagger(String a, String b){
  2.        //declaración de strings
  3.        String x1 = "";
  4.        String a1 = "[target]";
  5.        String a2 = "[endtarget]";
  6.        boolean bol = true;
  7.        int n;
  8.  
  9.        //Tenemos que conseguir las subristas de b que aparecen en a
  10.  
  11.        for(int i = 0; i < a.length(); i++){                      
  12.            n = b.indexOf(a.charAt(i));            //posición del caracter de a contenido en b  
  13.            if(n != -1){
  14.            bol = true;
  15.            }
  16.            if(n == -1){
  17.            bol = false;
  18.            }
  19.  
  20.            if(bol){
  21.            x1 = x1 + a.charAt(i);
  22.            }else{
  23.            x1 = x1 + " ";
  24.            }
  25.        }
  26.  
  27.        int w1,n3;
  28.        String aux = "";
  29.        x1 = " " + x1 + " ";                                   //para que siempre encuentra un espacio a la izqda y no se salga de rango
  30.  
  31.        for(int k = 0; k < x1.length(); k++){
  32.            w1 = x1.charAt(k);
  33.  
  34.            if(w1 != ' ' && x1.charAt(k-1) == ' '){            // no es un espacio pero el anterior si es un espacio
  35.                n3 = x1.indexOf(" ",k);                        //busca la posición del próximo espacio
  36.                aux = x1.substring(k,n3);                      
  37.                a = a.replaceFirst(aux,a1+aux+a2);
  38.  
  39.            }
  40.        }
  41.        return a;
  42.    }
  43. }


« Última modificación: 10 Febrero 2014, 10:21 am por Debci » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema, con programa->HELP PLZ « 1 2 »
Programación Visual Basic
newbY 12 4,571 Último mensaje 22 Noviembre 2006, 18:15 pm
por newbY
Problema programa VB
Programación Visual Basic
34Gl3 S1lV3R 2 2,190 Último mensaje 31 Enero 2008, 16:47 pm
por Chefito
Problema con un programa
Ingeniería Inversa
azazael 8 3,886 Último mensaje 4 Julio 2008, 10:23 am
por apuromafo CLS
Problema en mi programa (PIC)
Electrónica
laluchi 5 4,540 Último mensaje 30 Octubre 2008, 20:01 pm
por Meta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines