Split em String [RESOLVIDO]

7 respostas
Y

Em uma aplicação JME, como eu faço Split em uma String? A classe String não tem o método split, e a CLDC não tem a classe StringTokenizer.

Como posso fazer um split em uma String? Pretendo fazer persistência em arquivos comuns de texto, mas estou tendo esse problema em separar os valores retornados de cada linha do arquivo.

7 Respostas

Metaleiro

[color=darkblue]

Apenas uma sugestão, não sei se funciona (Gambiarra) : [/color]

String teste = "e;e;e;e;e;e;";
          teste.replaceAll(";", ",");
          String arrayString[] = {teste};
leonardom

Acho que nesse caso você vai ter que fazer na unha!

KWill

To aqui com um código de split feito na unha, mas o token só pode ser um char:

public String[] split(String string, char token)
		{
		int x,y,z;
		y = 0;
		z = 0;
			for (x = 0;x &lt string.length();x++)
			{
				if (string.charAt(x) == token)
				{
				y++;
				}
			}
		String[] split = new String[++y];
		y = 0;
			for (x = 0;x &lt= string.length();x++)
			{
				if ((x == string.length()) || (string.charAt(x) == 'token'))
				{
				string[y++] = string.substring(z,x);
				z = ++x;
				}
			}
		return split;
		}

Não sei se te ajuda.

Inté.

eduardo.carvalho
public Vector tokenize(String s, String token, int tamanho) 
    {
        Vector mensagem = new Vector();
 		
 	boolean foundToken = true;
 		
 	while(foundToken) 
 	{
            if(s.indexOf(token) > -1) 
            {
                mensagem.addElement(s.substring(0, s.indexOf(token)));
                s = s.substring(s.indexOf(token)+value);
                foundToken = true;
            }
            else 
            {
                mensagem.addElement(s);
 		foundToken = false;
            }
        }
        return mensagem;
    }

s => sua string
t => seu token
tamanho => tamanho do seu token(ex: ### = 3)

espero q te ajude

KWill
eduardo.carvalho:
public Vector tokenize(String s, String token, int tamanho) 
    {
        Vector mensagem = new Vector();
 		
 	boolean foundToken = true;
 		
 	while(foundToken) 
 	{
            if(s.indexOf(token) > -1) 
            {
                mensagem.addElement(s.substring(0, s.indexOf(token)));
                s = s.substring(s.indexOf(token)+value);
                foundToken = true;
            }
            else 
            {
                mensagem.addElement(s);
 		foundToken = false;
            }
        }
        return mensagem;
    }

s => sua string
t => seu token
tamanho => tamanho do seu token(ex: ### = 3)

espero q te ajude

Esse código parece bom, só não vejo propósito no parâmetro tamanho.

Inté.

Y

KWill:

Esse código parece bom, só não vejo propósito no parâmetro tamanho.
Inté.

É que esta linha:

s = s.substring(s.indexOf(token)+value);

Está com uma variável trocada, o correto seria:

s = s.substring(s.indexOf(token) + tamanho);

Embora o tamanho do token pudesse ser calculado dentro do método.

Y

Valew galera, deixei assim, aproveitando o código do colega:

import java.util.Vector;

public final class StringTokenizer
  {
   private String str;
   private String token;

   public StringTokenizer(String str, String token)
     {
      this.str = str;
      this.token = token;
     }

   public Vector getTokens()
     {
      Vector tokens = new Vector();

      boolean foundToken = true;

      while(foundToken)
        {
         if (str.indexOf(token) > -1)
           {
            tokens.addElement(str.substring(0, str.indexOf(token)));
            str = str.substring(str.indexOf(token) + token.length());
            foundToken = true;
           }
         else
           {
            tokens.addElement(str);
            foundToken = false;
           }
        }

      return (tokens);
     }
  }
Criado 9 de maio de 2007
Ultima resposta 9 de mai. de 2007
Respostas 7
Participantes 5