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.
Estatísticas:










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;
}
}





Curso online - Criando uma aplicação client/server no Visual Studio 2005

Curso Online: Criando somente a documentação necessária de um sistema controle de estoque(básico) para uma empresa

Curso Online - Crie uma loja virtual completa com Visual Studio e ASP.NET

Curso online - Novidades do C# (csharp) 3.0

Controle de Chamados Técnicos com MultiCamadas (Desenvolvendo na prática interface Win32, Web e Mobile)

Introdução ao ASP

Curso Completo MySQL

jQuery – A Biblioteca JavaScript para Webdesigners




Revista Engenharia de Software 28

Reuso de Software utilizando Padrões de Análise - Engenharia de Software 28

Refatoração para Padrões - Engenharia de Software 28

Auditoria de sistemas - Engenharia de Software 28

O Papel Evolutivo do Software - Engenharia de Software 28

Requisitos em SOA – Parte 1 - Engenharia de Software 28

Negociação de Contratos - Engenharia de Software 28

Há um colega chato em seu local de trabalho? - Engenharia de Software 28

Gerando o MD5 a ser impresso no cupom fiscal


Você está em:





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


