Comparação de String

4 respostas
F

Tenho uma String com 50 posições e tenho que comparar suas posições
da seguinte maneira
String s = 12121212121212121212856498165320547906087090606057
divido a String em duas

s1 = 1212121212121212121285649 e s2 = 8165320547906087090606057
ai comparo s1 com s2 se não forem iguais divido s1 na metade e comparo novamente

s1 = 121212121212 e s2 = 1212121285649
divido s1 na metade e comparo novamente
s1 = 121212 e s2= 121212

Compara s1 com s2 e ele ve que são iguais fazendo com que o programa pare
Mas so que quero encontrar o periodo de repetição 12 e não 121212
O que estou fazendo de errado alguem pode me ajudar
Valeu

4 Respostas

gRoOve

Se você ta quebrando no meio a string e comparando as duas metades, nunca vai chegar só no 12…vc quer retornar só uma vez o número 12, seria isso?

Lavieri

a periodicidade começa sempre do inicio ?? se sim ... use um laço de repetição pra encontrar e seja feliz...

String expressao = "12121212121212121212856498165320547906087090606057";

        int count = 0;
        boolean notFound = true;
        while(notFound && expressao.length() > count*2) {
             count ++;
             String primeiraParte = expressao.substring(0,count);
             String segundaParte = expressao.substring(count,2*count);
             notFound = !segundaParte.equals(primeiraParte);
        }
        System.out.println(expressao.substring(0,count));
F

Sim eu tenho q pegar o periodo de repetição

ex [telefone removido] o periodo de repetição é 125
12084120841278 o periodo de repetição é 12084

F
Lavieri:
a periodicidade começa sempre do inicio ?? se sim ... use um laço de repetição pra encontrar e seja feliz...
String expressao = "12121212121212121212856498165320547906087090606057";

        int count = 0;
        boolean notFound = true;
        while(notFound && expressao.length() > count*2) {
             count ++;
             String primeiraParte = expressao.substring(0,count);
             String segundaParte = expressao.substring(count,2*count);
             notFound = !segundaParte.equals(primeiraParte);
        }
        System.out.println(expressao.substring(0,count));

o método acima funciona, mas somente para alguns casos
por ex para 111161111611116111161111721423211211164111114235181
o resultado deveria ser 11116 e não 1

Criado 15 de março de 2009
Ultima resposta 15 de mar. de 2009
Respostas 4
Participantes 3