Separação de String

8 respostas
JavaMania

Tenho um campo textarea no meu form e quero que o usuário digite uma serie de informaçoes neste textarea, sempre na ordem de uma por linha:

[i]
textarea

banana amarela
laranja laranja
pera amarela

[/i]

por meio de request, todas essas informação serão uma única String, entao eis a pergunta:

Como separar esta String em banana amarela/ laranja laranja/ pera amarela ???

8 Respostas

V

da uma pesquisada na API - Split

Loiane

Use o método split da classe String:

String minhaString = “banana amarela/laranja laranja/pera amarela”

String[] stringsSeparadas = minhaString.split("/");

Terá como retorno um array com 3 posições.

JavaMania

opa Loiane!

Obrigado pela resposta, eu até posso fazer isso, porém não haverão barras no fim de cada frase e a grosso modo o “ENTER” irá separar cada frase.

No caso eu precisaria saber qual o caracter q o “ENTER” representa para poder usar o split.

Loiane

já tentou os caracteres de escape “\r” (retorno) e “\n” (pula linha)?

O Enter seria pula linha + retorno ou retorno + pula linha.

Agora não lembro a ordem correta, mas tente uma dessas duas combinações:

minhaString.split("\r\n");

OU

minhaString.split("\n\r");

JavaMania

Funcionou, muito obrigado.

fiz da seguinte maneira
[b]
String opcoes = request.getParameter(“opcoes”);

List lista = Arrays.asList(opcoes.split("\r\n"));

for (Object object : lista) {

System.out.println("Objetos => "+ object+ “\n);

}

[/b]
S

Olá, aproveitando o tópico, gostaria de saber se posso usar um separador composto no split.
Motivo: Estou trabalhando com WebServices onde o retorno de um valor tem vários caracteres e o separador utlizado foi o “:|”.

[b]String codigoEspecifico = "Teste1:|Teste2:|Teste3";
String [] codigoIndividual = codigoEspecifco.split(":|");
for (String codigo : codigoIndividual) {
     System.out.println(codigo);
} [/b]

Mas dessa forma não está funcionando onde ele quebra a string preenchendo o array com apenas 1 caractere em cada posição do array.

Saída:
codigoEspecifico[0] = T
codigoEspecifico[1] = e
codigoEspecifico[2] = s
codigoEspecifico[3] = t
codigoEspecifico[4] = e
codigoEspecifico[5] = 1
Etc…

Poderiam me ajudar também?

Loiane

Olá, em primeiro lugar, uma dica: quando for postar código (mais de uma linha), utilize a tag code! :slight_smile:

O método split, aceita como argumento uma expressão regular.

O caractere | é o símbolo do OU ou alternativo, por isso o seu split não está funcionando direito.

Para acertar, acrescente os caracteres \ antes do | que vai executar 100%! :slight_smile:

Aproveite e dê uma olhada nas expressões regulares.

String codigoEspecifico = "Teste1:|Teste2:|Teste3"; String [] codigoIndividual = codigoEspecifico.split(":\|"); for (String codigo : codigoIndividual) { System.out.println(codigo); }

S

Muito obrigado Loiane, funcionou perfeitamente.

Vou estudar mais sobre expressões regulares.

Bom Dia.

Criado 24 de novembro de 2009
Ultima resposta 25 de nov. de 2009
Respostas 8
Participantes 4