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

Space do autor

download
Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL

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