Whats new? | Login | Parceiros
Cadastre-se | Atendimento | RSS
+ .net:
artigos   |   vídeos   |    cursos   |    mais

Método SPLIT em linguagem J2ME

Esta é uma dica de implementação da funcionalidade SPLIT encontrada nas funções nativas para Strings na versão SE do Java. Como o ME não possui essa opção, um método aqui foi criado capaz de reproduzir da mesma forma essa funcionalidade. Para exemplificar, 5 caixas de texto serão populadas com informações tratadas pelo método ao ser acionado o comando atualizar. O código está comentado para esclarecer as linhas de código.

DAMáZIO PEREIRA TEXEIRA
Graduado em Sistemas de Informação pela UNIPAC. Pós-Graduado em Redes de Telecomunicações e Mestrando em Engenharia de Software pela UFMG. Analista de Sistemas da Digicade Tecnologia, desenvolvendo softwares de informação geográfica.


Ver space do autor


Estatísticas:
Visualizações:
5399
Favoritado:
 1 vez(es)
Conteúdo:
Didática:
Utilidade:
2 0
votos: 2

Serviços:



Esta é uma dica de implementação da funcionalidade SPLIT encontrada nas funções nativas para Strings na versão SE do Java. Como o ME não possui essa opção, um método aqui foi criado capaz de reproduzir da mesma forma essa funcionalidade. Para exemplificar, 5 caixas de texto serão populadas com informações tratadas pelo método ao ser acionado o comando atualizar. O código está comentado para esclarecer as linhas de código.

 

 

import java.util.Vector;

import java.io.InputStream;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

 

/**

 *

 * @author damazio

 */

public class Separador extends MIDlet  implements CommandListener {

 

    private Display display;

    private Form FormTeste;

    private TextField textField1;

    private TextField textField2;

    private TextField textField3;

    private TextField textField4;

    private TextField textField5;

    private Command comandoDeSaida;

    private Command comandoAtualiza;

 

    public Separador() {

          display = Display.getDisplay(this);

          // quando iniciado o aplicativo, o construtor é invocado

          // neste ponto montamos o formulario criando 5 obhetos de texto

          // a opção ANY diz que aceita qualquer caracter digitado

          textField1 = new TextField("Texto 1", null, 120, TextField.ANY);

          textField2 = new TextField("Texto 2", null, 120, TextField.ANY);

          textField3 = new TextField("Texto 3", null, 120, TextField.ANY);

          textField4 = new TextField("Texto 4", null, 120, TextField.ANY);

          textField5 = new TextField("Texto 5", null, 120, TextField.ANY);

 

          // criando um objeto do tipo formulário. Este objeto é essencial para exibir os outros objetos texto

          FormTeste = new Form("Formulário Teste");

 

          // adicionando os objetos texto ao formulário

          FormTeste.append(textField1);

          FormTeste.append(textField2);

          FormTeste.append(textField3);

          FormTeste.append(textField4);

          FormTeste.append(textField5);

 

          // criando o comando de sair e atualizar. O comando atualizar irá invocar o separador

          comandoDeSaida = new Command("Sair", Command.EXIT,1);

          comandoAtualiza = new Command("Atualizar", Command.OK,1);

 

          // adicionando os comando de sair e atualizar ao formulario

          FormTeste.addCommand(comandoAtualiza);

          FormTeste.addCommand(comandoDeSaida);

 

          // setando os comandos para seremreconhecidos ao manipular o teclado

          // é preciso que a assinatura da classe implemente o CommandListener

          FormTeste.setCommandListener(this);

         

 

    }

 

    public void startApp() {

          display.setCurrent(FormTeste);

    }

 

    public void pauseApp() {

    }

 

    public void destroyApp(boolean unconditional) {

            display.setCurrent(null);

           

            // notificando o encerramento do aplicativo ao gerenciador do dispositivo

            notifyDestroyed();       

    }

 

    public void commandAction(Command comando, Displayable s)

    {

        // Caso algum comando seja acionado, verifica-se se foi o comando de saída

        if (comando == comandoDeSaida)

        {

            destroyApp(false);

        }

        if (comando == comandoAtualiza)

        {

            String texto = "Cruzeiro Futebol CLube; Clube Atlético Mineiro; América Futebol Clube; Vila Nova Futebol CLube; Ipatinga Futebol Clube";

            // invocando o método SPLIT, passando o texto e o separador

            String[] resultados = split(texto,;);

            // jogando os resultados para os objetos texto

            textField1.setString(resultados[0]);

            textField2.setString(resultados[1]);

            textField3.setString(resultados[2]);

            textField4.setString(resultados[3]);

            textField5.setString(resultados[4]);

        }

     }

 

     public final static String[] split( String texto, char separador ) {

      if ( texto == null ) {

         return null;

      }

      // verifica se existe alguma informação na string texto

      int tamanhoTexto = texto.length();

      if ( tamanhoTexto == 0 ) {

         return null;

      }

      Vector    lista   = new Vector();

      int       i      = 0;

      int       start  = 0;

      boolean   permite  = false;

      while ( i < tamanhoTexto ) {

         // percorre caracter a caracter tentando encontrar o separador

         // se encontrar o separador no primeiro carcater ele ignora

         if ( texto.charAt( i ) == separador ) {

            if ( permite ) {

               // pegando o pedaço da string entre os separadores

               lista.addElement( texto.substring( start, i ).trim() );

               permite = false;

            }

            // recebo a posição de onde posso começar a pegar os caracteres,

            // até a próxima vez que encontrar o separador ou terminar os caracteres

            start = ++i;

            continue;

         }

         permite = true;

         i++;

      }

      if ( permite ) {

         // guardando a informação em uma posição da lista

         lista.addElement( texto.substring( start, i ).trim() );

      }

      // convertendo o vetor em arrray

      String[]  listaElementos    = new String[lista.size()];

      lista.copyInto( listaElementos );

      return listaElementos;

   }

}





Participe! Inclua um comentário
[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar ;-)



 
 

[Este post ainda não foi associado a uma sequência]


[Fechar]
Este post está disponível para assinantes da WebMobile ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
DevMedia Group   www.devmedia.com.br   |   www.javafree.org   |   www.mrbool.com
2010 - Todos os Direitos Reservados a DevMedia Group - (21) 3382-5038