String txt = "Sua.String.Aqui";
String[] pedacos = txt.split("\\.");
Amigo, não sei se existe algo pronto na API ou em outro lugar ou outra maneira mais fácil de resolver a pendenga, mas fiz esse código abaixo funcionar na munheca.
public String getCodigoFmt(){
String retorno = "";
for (int i = 0; i < codigo.length(); i++){
retorno += codigo.charAt(i);
if (((i + 1) % 4 == 0) && (i <= 16)){
retorno += "-";
}
}
return retorno;
}
Utilize o método split(). Exemplo:
String str = "Bom dia.Meu nome é Felipe!";
String[] split = str.split("\\.");
for (int i = 0; i < split.length; i++) {
System.out.println(split[i]);
}
Percebeu que eu utilizei “\.” ao invés de “.” como argumento do método? Fiz isso porque o método aceita uma expresão regular como parâmetro.
[quote=celso.martins]
public String getCodigoFmt(){
String retorno = "";
for (int i = 0; i < codigo.length(); i++){
retorno += codigo.charAt(i);
if (((i + 1) % 4 == 0) && (i <= 16)){
retorno += "-";
}
}
return retorno;
}
[/quote]
Hããã??? :?
Ou, faz um mix de str.indexOf com str.substring…
[quote=danieldestro][quote=celso.martins]
public String getCodigoFmt(){
String retorno = "";
for (int i = 0; i < codigo.length(); i++){
retorno += codigo.charAt(i);
if (((i + 1) % 4 == 0) && (i <= 16)){
retorno += "-";
}
}
return retorno;
}
[/quote]
Hããã??? :? [/quote]
Acho que entendi errado a dúvida do amigo. =)
Quando eu cliquei em responder, ninguém havia respondido. Depois que a mensagem foi, vi a sua. Aí vi que viajei.
Mas se a sua surpresa foi devido à codificação, sou todo ouvidos… ops… olhos. =)
Abraços
Por curiosidade executei o seu código com a variável “codigo” contendo o texto indicado na primeira mensagem deste post, e ele imprimiu:
“100–Mund-o Ja-va.1-01-Grupo de usuários Java.102-Fulano de tal”
Por curiosidade executei o seu código com a variável “codigo” contendo o texto indicado na primeira mensagem deste post, e ele imprimiu:
“100–Mund-o Ja-va.1-01-Grupo de usuários Java.102-Fulano de tal”[/quote]
Aqui, uso isso para separar um código, gerado para cartões pré-pagos, em 5 grupos de 4 caracteres. Assim:
QBVYNLFHFOMXT2YNZC1M
dá esse resultado:
QBVY-NLFH-FOMX-T2YN-ZC1M
Pelo menos no meu Tomcat. =)
Abraços
Agora sim você foi mais específico. Poderia ter economizado tempo se falasse no começo, né?
Uma simples busca no Google por: j2me split string traz:
http://forum.java.sun.com/thread.jspa?threadID=646861&messageID=3809007
http://www.devmedia.com.br/articles/viewcomp.asp?comp=6289&hl=
[quote=diogoroos]Pessoa, obrigado pelas dias.
Para ser mais específico, preciso separar essa frase em uma aplicação J2ME e a classe String do J2ME não tem a função split.
Existe outras alterantivas além destas ?
Valeu[/quote]
Amigo, pense num algorítmo utilizando a silução do rodrigoallemand.
Me parece a melhor opção para o seu caso.
Abraços!
PS. Ou a que o Destro acabou de postar. Tá demais isso hoje, hein Daniel? =)
Me mexo para postar e quando vejo tem uma msg sua. =)
boas pessoal.
como ainda programo a pouco estou com umas duvidas…
eu queria fazer uma funçao que recebe uma string e que retorna uma string com parte dessa string e que na original fique somente o resto.
eu dou um exemplo para me explicar melhor
exemplo recebo uma string mensagem = “1|aaa|1|bbb bbb|2|ccc ccc|3|ddd”
e quero que a funçao me retorne uma string mensagem1 = “1|aaa|1|bbb bbb”, uma string mensagem2 = “2|ccc ccc” e depois queria que na string mensagem ficasse somente: mensagem = “3|ddd”
sera que alguem me pode ajudar…
agradecia muito
[quote=gonzas.mts]boas pessoal.
como ainda programo a pouco estou com umas duvidas…
eu queria fazer uma funçao que recebe uma string e que retorna uma string com parte dessa string e que na original fique somente o resto.
eu dou um exemplo para me explicar melhor
exemplo recebo uma string mensagem = “1|aaa|1|bbb bbb|2|ccc ccc|3|ddd”
e quero que a funçao me retorne uma string mensagem1 = “1|aaa|1|bbb bbb”, uma string mensagem2 = “2|ccc ccc” e depois queria que na string mensagem ficasse somente: mensagem = “3|ddd”
sera que alguem me pode ajudar…
agradecia muito[/quote]
Porque não:
mensagem1 = mensagem.substring(x,y);
mensagem2 = mensagem.substring(w,z);
mensagem = mensagem.substring(m);
?
onde x,y,w,z e m são as posições das substrings que você quer capturar.
Lembre-se que se você somente quer definir o ponto de “corte” inicial e “ir” até o final da String (como é o caso do teu resto em mensagem), você só precisa definir o ponto inicial.
Dê uma olhada na API do Java
Abraços!
Bem, dei uma refatorada no método, para ficar mais automatizado. Joguei numa classe utilitária que tenho para Strings.
Como tem a ver com o assunto, resolvi postar aqui.
Não encontrei nada que fizesse isso na API do Java. Se alguém souber, pode dizer, não me aborreço. =)
O bom de fazer métodos utilitários é o treinamento.
public static String addToken(String entrada, String token, int intervalo){
String retorno = "";
for (int i = 0; i < entrada.length(); i++){
retorno += entrada.charAt(i);
if (((i + 1) % intervalo == 0) && ((i + 1) != entrada.length())){
retorno += token;
}
}
return retorno;
}
Não encontrei nada melhor, para resolver a questão desse algorítmo colocar um token no final da String, que ((i + 1) != entrada.length())
Pensei nesse código:
if (retorno.endsWith(token)){
retorno = retorno.substring(0, retorno.length() - 1);
}
Mas me pareceu uma gambiarra terrível.
Abraços
sim dessa maneira esta correcto…
mas na realidade eu nao sei essas posiçoes pois as mensagens podem ter varias dimençoes.
eu nao sei o real tamanho disso.
sera que e possivel fazer o que quero. ou sera que estou a pensar alto de mais…
Então cara vou te passar +1 exemplo com posições fixas para quebrar sua string:
[code]private String retornaString(String mensagem)
{
String mensagem1 = “”;
String mensagem2 ="";
String mensagem3="";
for(int i = 0 ;i< mensagem.length();i++)
{
if(i<14)
mensagem1+=mensagem.substring(i,i+1);
else if(i>14&&i<24)
mensagem2+=mensagem.substring(i,i+1);
else if(i>24)
mensagem3+=mensagem.substring(i,i+1);
}
return ("String original: “+mensagem+” Parte 1: “+mensagem1+” Parte 2: “+mensagem2+” Parte 3: "+mensagem3);
}[/code]
Cara não testei o código não…to no trampo…ta osso…
Só lembrando que o método split que quebra a string em um vetor de strings é bem mais facil de utilizar…
flw []'s
Pessoal,
Vocês sabem como separar uma string sem usar o StringTokenizer ?
P. Ex: String texto = "100-Mundo Java.101-Grupo de usuários Java.102-Fulano de tal"
Eu gostaria de separar pelo “.” criando uma nova String e jogando essa String (frase completa separada pelo “.”) em um Vetor.
Tem como ?
Valeu!!
Pessoal, obrigado pelas dicas.
Para ser mais específico, preciso separar essa frase em uma aplicação J2ME e a classe String do J2ME não tem a função split.
Existem outras alterantivas além destas ?
Valeu
[quote=danieldestro]Agora sim você foi mais específico. Poderia ter economizado tempo se falasse no começo, né?
Uma simples busca no Google por: j2me split string traz:
http://forum.java.sun.com/thread.jspa?threadID=646861&messageID=3809007
Pode ser!
Eu também encontrei uma classe StringTokenizer para J2ME que tem basicamente a mesma função do J2SE.
Está em: http://escience.anu.edu.au/project/05S1/JiXu/Palm%20Source%20Code/StringTokenizer.java
Obrigado!
Diogo Roos