manipulação de string

4 respostas
Algebra

Existe uma forma simples de pegar 2 ou mais indices dentro de uma string por exemplo

string1 = “p0v27q10q1v5s8c”

quero pegar os números que vem em seguida da letra “v” em forma de matriz

de forma que a matriz seja

m[0] == 27
m[1] == 5

já que os numeros que sucede os v’s são respectivamente 27 e 5

4 Respostas

mario.fts

você pode usar expressões regulares pra buscar na string, depois é só vc manipular os resultados pra montar a matriz

String value = "p0v27q10q1V5s8c";

		Pattern pattern = Pattern.compile("(?i)v\\d*");

            Matcher matcher = pattern.matcher(value);

            boolean found = false;
            while (matcher.find()) {
                System.out.printf("Encontrado: \"%s\" inicio " +
                   "posição %d fim posição %d.%n",
                    matcher.group(), matcher.start(), matcher.end());
                found = true;
            }
            if(!found){
                System.out.format("Não achou! %n");
            }

resultado:

Encontrado: “v27” inicio posição 2 fim posição 5.
Encontrado: “V5” inicio posição 10 fim posição 12.

depois é só fazer substrings pra pegar só os números (é só somar 1 na posição inicial do matcher).

adaptei daqui: http://java.sun.com/docs/books/tutorial/essential/regex/index.html

[]'s

Algebra

Pattern pattern = Pattern.compile("(?i)v\d*");

Matcher matcher = pattern.matcher(texto);

        boolean found = false;
        while (matcher.find()) {
            System.out.printf("Encontrado: \"%s\" inicio " +
               "posição %d fim posição %d.%n",
                matcher.group(), matcher.start(), matcher.end());
            found = true;
        }
        if(!found){
            System.out.format("Não achou! %n");
        }

ele só passa em não achou Mário. será que estou errando em alguma coisa.

mario.fts

a variavel texto ta com o valor certo?

Algebra

vc está certo Mário a minha entrada estava errada

funcionou blz. vlw

Criado 2 de setembro de 2009
Ultima resposta 3 de set. de 2009
Respostas 4
Participantes 2