Capturar uma parte do texto em uma string

18 respostas
S

Ola galera, como faço para mim pegar ex:

[email removido]

preciso capturar apenas o que tiver depois do @ e até o . no caso preciso pegar apenas o provedor do exemplo.

Obrigado pela atenção.

18 Respostas

O

Dá uma olhada no substring

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

S

Então mas com o substring acho que nao vai dar certo pq nele especificamos a casa decimal que ele vai pegar a string n é isso?

S

Não é apenas um email que preciso capturar o caracter entre @ e . são 10 emails!

S

Não é apenas um email que preciso capturar o caracter entre @ e . são 10 emails!

O

otaviojava:
Dá uma olhada no substring

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

Você pode fazer assim:

public class App 
{
    public static void main( String[] args )
    {String email="[email removido]";
    System.out.println("Provedor:");
    System.out.println(email.substring(email.indexOf("@")+1,email.indexOf(".", email.indexOf("@"))));
        
    }
}
D

Se souber como faz um, basta colocar um laço, não?

O

Funciona do mesmo jeito, é só um exemplo vale a pena pegar e dá uma refatorada.

public class App {

    public static void main(String[] args) {
        List<String> emails = new ArrayList<String>();
        emails.add("[email removido]");
        emails.add("[email removido]");
        emails.add("[email removido]");
        emails.add("[email removido]");
        emails.add("[email removido]");
        emails.add("[email removido]");
        for (String email : emails) {
            System.out.println("Provedor:");
            System.out.println(email.substring(email.indexOf("@") + 1, email.indexOf(".", email.indexOf("@"))));
        }
    }
}
O

Se souber como faz um, basta colocar um laço, não?

Concordo plenamente :slight_smile:

J

Conhece a StringUtils da apache? Deve ficar algo assim:

String provedor = StringUtils.substringBetween(email, "@", ".");
D

Conhece a StringUtils da apache? Deve ficar algo assim:

String provedor = StringUtils.substringBetween(email, "@", ".");

Verdade, tem as facilidades do apache…

A

Conhece a StringUtils da apache? Deve ficar algo assim:

String provedor = StringUtils.substringBetween(email, "@", ".");

Verdade, tem as facilidades do apache…

ainda assim ficaria com a solução do Otavio, bem melhor do que ficar colocando lib para dentro do projeto para um problema apenas.

D

Conhece a StringUtils da apache? Deve ficar algo assim:

String provedor = StringUtils.substringBetween(email, "@", ".");

Verdade, tem as facilidades do apache…

ainda assim ficaria com a solução do Otavio, bem melhor do que ficar colocando lib para dentro do projeto para um problema apenas.
Bom, se você acha que StringUtils só resolve este problema, sugiro conhecer melhor a API commons-lang do apache…
Depois, gosto é gosto

J

drsmachado:
Bom, se você acha que StringUtils só resolve este problema, sugiro conhecer melhor a API commons-lang do apache…
Depois, gosto é gosto

++
A commons-lang é uma biblioteca que eu sempre coloco em meus projetos. E pra quem usa o maven, é só acrescentar mais uma simples entrada de dependência no pom

O

jaboot:
drsmachado:
Bom, se você acha que StringUtils só resolve este problema, sugiro conhecer melhor a API commons-lang do apache…
Depois, gosto é gosto

++
A commons-lang é uma biblioteca que eu sempre coloco em meus projetos. E pra quem usa o maven, é só acrescentar mais uma simples entrada de dependência no pom

Também gosto da commons-lang, mas concordo com o aix que não tem sentido adicionar essa lib se for somente para resolver esse pequeno problema.
Mas a api é fantástica e tem vários outros recursos, eu também indico e muito o uso dela.

A

drsmachado:

Bom, se você acha que StringUtils só resolve este problema, sugiro conhecer melhor a API commons-lang do apache…
Depois, gosto é gosto

Não alimento os trolls.

J

A galera ficou nervosa… beleza gente, se não quiser usar biblioteca nenhuma, dá um split no seu e-mail pelo @. Vai criar um array de 2 posições, pegue o segundo [1].
Depois, dê um outro split nesse seu array pelo .
Pegue a primeira posição [0].

Pronto, fácil, rápido, indolor e sem bibliotecas.

D

A galera ficou nervosa… beleza gente, se não quiser usar biblioteca nenhuma, dá um split no seu e-mail pelo @. Vai criar um array de 2 posições, pegue o segundo [1].
Depois, dê um outro split nesse seu array pelo .
Pegue a primeira posição [0].

Pronto, fácil, rápido, indolor e sem bibliotecas.
Fácil?
Rápido?
O substring é bem mais fácil…

D

aix:
drsmachado:

Bom, se você acha que StringUtils só resolve este problema, sugiro conhecer melhor a API commons-lang do apache…
Depois, gosto é gosto

Não alimento os trolls.

Ah, ficou bravinho.
Relaxa, camarada, da mesma forma como você tem a tua forma de pensar, eu tenho a minha.
Faço o que quero, digo o que penso e acabou.
Se você não se permite a essa liberdade, meus pêsames.

Criado 21 de dezembro de 2011
Ultima resposta 21 de dez. de 2011
Respostas 18
Participantes 5