domingo, 30 de novembro de 2014

Trabalhando com Runnable's externas em suas Threads.

Fala galera, tudo bem ?

Hoje vou mostrar para vocês como trabalhar com sua classe Runnable fora da classe em que a Thread é "estartada".





Saída : 



Agora vamos ao que interessa, criar nossa Runnable, no exemplo criamos a RelogioRunnable, ajuda muito trabalhar com sua Runnable fora do escopo da classe por diversos motivos, inclusive encapsulamento e re-uso de código.

Nossa classe irá implementar a interface Runnable que nos fará  sobrescrever o método run


Vamos sobrescrever o nosso método run no nosso caso, estou imprimindo a hora atual, um exemplo bem pratico.


Vamos por em pratica nosso exemplo : 





Viu, como é simples? 
Até a próxima !


segunda-feira, 22 de setembro de 2014

Buscando endereço pelo cep com Java

Fala galera , hoje vou ensinar como buscar um endereço por um cep válido com o Java utilizando uma conexão com a internet e uma biblioteca chamada : JSoup.

1º Passo  :

Vamos criar um projeto com o nome BuscaCep e inserir a biblioteca JSoup 1.7.2 nele, no exemplo eu estou utilizando a IDE Netbeans, mas pode ser feito em qualquer IDE ou até mesmo pelo notepad++ ou notepad.
2º Passo :

Vamos modelar a classe dessa forma : 

3º Passo : 

Vamos entender como funcionara o projeto : 

O usuário digita o número do cep e o sistema faz uma requisição para o site : qualocep.com.br
passando o cep como parâmetro, assim fazendo o site retornar o endereço do cep, sendo esse válido.

A biblioteca JSoup funcionará como um intermediário nesse processo facilitando muito o nosso processo, ela irá varrer os elementos html do site interceptando os dados em que estamos solicitando via seus "id's" e classes.

4ºPasso : 

Vamos criar nosso método responsável pela requisição :




Temos um método estatico chamado buscaCep que recebe uma String com o cep que iremos utilizar
para recuperar o endereço. 

Iremos fazer uma instancia de Cep chamada insCep e iremos recuperar um documento html com 
a biblioteca JSoup , acessaremos ela por método estático passaremos o endereço como parâmetro e setamos um agente de uso "UserAgent" que simula um navegador, para camuflar nosso acesso, e utilizamos get para recuperar os dados.

Iremos buscar pelo atributo da tag itemprop os valores correspondentes do site, assim retornando os valores desejados.

O que o site retorna : 

<span itemprop="streetAddress"> Rua Júlio Conceição - lado ímpar</span>

Como Capturamos : 

documento.getElementsByAttributeValue("itemprop", "streetAddress").text();


onde documento representa nossa pagina html inteira, utilizaremos o metodo :

getElementsByAttributeValue(String,String);

que ira buscar dentro do documento html a tag chamada itemprop e que contenha streetAdrresse utilizamos o método text para retornar o valor dela, semelhante a uma sobrecarga de toString.Faremos isso assim sucessivamente. Porém para capturarmos o bairro, iremos fazer o seguinte : 

insCep.bairro = documento.getElementsByTag("td").get(2).text();

Iremos procurar por uma tag td no nosso documento html, no caso a do bairro é a segunda, então enviamos um inteiro com valor 2 para esse objeto que implementa list e utilizamos o método get para recebermos o objeto, e utilizamos o nosso conhecido método text.


um exemplo para buscar um bairro pelo método estatico : 

          new Thread(new Runnable(){

              @Override
              public void run() {
                  try {
                      // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                      System.out.println(Cep.buscaCep("01126001").getBairro());
                  } catch (IOException ex) {
                      Logger.getLogger(Cep.class.getName()).log(Level.SEVERE, null, ex);
                  }
              
              }
          
          
          }).start();
            
           
        } 

Link com o projeto :



Video do projeto em funcionamento : 










segunda-feira, 18 de agosto de 2014

Java - O método equals



Fala galera, hoje iremos falar da sobrescrita do método equals com o Java, o método equals tem a função de comparar dois objetos e retornar um booleano para a condição imposta, diferente do == que retorna se o objeto é da mesma instancia que a referencia , no equals verificamos se objetos diferentes são iguais, ou tem características iguais, vamos ao exemplo  :

Temos uma classe : Pessoa com os atributos nome,idade,altura e sexo..
Declarado que duas pessoas iguais possuem as mesmas características :

Agora fazer a sobrescrita do método equals da classe Object, o método mais genérico possível
, tanto que devemos efetuar um casting para o nosso tipo antes de fazer a comparação


Iremos analisar a saída no console com as comparações :



 public static void main(String [] args)
    {
        Pessoa p = new Pessoa();
        p.setNome("Jhonatan");
        p.setIdade(20);
        p.setAltura(1.80);
        p.setSexo(true);
       
        Pessoa f = new Pessoa("João",22,1.90,false);
       
        System.out.println(p.equals(f));
    }

 Saida : false;


 public static void main(String [] args)
    {
        Pessoa p = new Pessoa();
        p.setNome("Jhonatan");
        p.setIdade(20);
        p.setAltura(1.80);
        p.setSexo(true);
        //Construtor sobrecarregado que aceita uma instancia de Pessoa
        Pessoa f = new Pessoa(p);
       
        System.out.println(p.equals(f));
    }

 Saida : true;


qualquer dúvida é só postar galera.

segunda-feira, 4 de agosto de 2014

As três maneiras de trabalhar com CSS

Fala galera, tudo em cima ? Dando inicio a nova metodologia do blog iremos aprender como utilizar o CSS de forma externa em nossas paginas web.

Temos três maneiras distintas para carregar o CSS em nossas paginas , a primeira :

Externa : 

Considerada uma das melhores praticas para se utilizar o CSS funciona da seguinte forma : 

 <head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>

A chamada é feita dentro do head invocando um arquivo CSS para ser utilizado dentro da pagina ao contrario da forma : 

Interna : 


<head>
<style>
hr {color: sienna;}
{margin-left: 20px;}
body {background-image: url("images/background.gif");

</style>
</head>

Que já trabalha dentro da pagina muito parecida com o :

Inline : 

<p style="color:sienna;margin-left:20px;">This is a paragraph.</p>

Essa maneira trabalha direto na tag agilizando o trabalho, porém é aconselhada para se trabalhar com uma única pagina pois não se pode re-aproveitar os estilos.


Essa são as principais maneiras de se utilizar o CSS em suas paginas, até mais galera..

para mais informações : http://www.w3schools.com/css/css_howto.asp

segunda-feira, 21 de julho de 2014

Importando suas classes para sua JSP

Fala galera , hoje iremos aprender a fazer o import das nossas classes dentro das nossas JSP's , vendo alguns fóruns na internet sobre esse assunto muito pesquisado.

basta utilizar :

<%@ page import="br.com.nomepacote" %>





Bom, isso vai evitar muita dor de cabeça, até a próxima galera.

segunda-feira, 7 de julho de 2014

Utilizando o import static

Fala galera, estou aqui para mostrar para vocês uma ferramenta interessante e muito útil que pode ser utilizada a partir do Java 5(Tiger), trata-se da : importação de estática "import static", sabe aquelas classes que tem métodos estáticos muito uteis? então é possível importar as mesmas sem ter que ficar utilizando referencias da classe exemplo : Math.metododaclasse() se tornaria apenas metododaclasse(), claro isso poderá interferir na legibilidade do código , porém é bem útil para utilizarmos classes Wrappers(box) na qual sempre utilizamos seus métodos estáticos.


No exemplo da imagem as importações foram : 
import static java.lang.Math.*;
import static java.lang.Integer.*;


e a utilização do código foi : 

String quatro = "4";
        int a = abs(parseInt(quatro));
    Double p = random() * a;
    
    System.out.println(p);

sem essa ferramenta seria : 
String quatro = "4";
        int a = Math.abs(Integer.parseInt(quatro));
    Double p = Math.random() * a;
    
    System.out.println(p);

espero ter ajudado galera, até mais. 

quarta-feira, 2 de julho de 2014

Validações com expressões regulares.

Já não é de hoje que desenvolvedores encontram problemas para validar dados recorrentes de clientes
em suas aplicações , a mais clássica é a formatação do CEP e DATA então irei mostrar um exemplo simples
de como validar a formatação de datas com expressões regulares.



Podemos observar que temos um método que nos retorna um booleano informando se a formatação esta correta (##/##/####) utilizando regex(Expressões Regulares) onde d significa apenas dígitos e o número entre {} o quantificador, utilizamos o método match que nos retorna um boolean para essa verificação.

sábado, 7 de junho de 2014

Tradutor em J2SE no Java 7

Fala galera, esse post é para divulgar um projeto que estou fazendo utilizando engenharia reversa para conseguir traduzir Strings de uma forma gratuita, já que as apis para isso são todas pagas.

Não vou explicar muito como funciona por enquanto mas irei mostrar o funcionamento(inglês - Português por enquanto).




quinta-feira, 5 de junho de 2014

Utilizando o Bundle no Android.

Fala galera, muito tempo sem postar, porém hoje estou de volta com uma assunto um pouco peculiar; Uso do Bundle no Android, o Bundle consiste em transitar dados entre classes que "extends" de Activity, tanto que nosso querido e amado onCreate recebe um Bundle, o uso do Bundle é interessante para trocar dados entre activity's mediante um código único de acesso, diferente de uma variavel static.
Nesse exemplo ilustrei bem fazendo a passagem de um int da tela mãe para a tela filha com um código de acesso.



Nessa imagem observamos a instancia de um Bundle, onde estou passando em String o valor da key responsável pelo acesso do mesmo, e uma int com os dados que eu quero enviar. Vale lembrar que o método putInt é responsável para enviar um inteiro assim como putString uma String e por assim sucessivamente.

Enviamos os dados com um Ontouch (...) bom não vou explicar , isso até porque não é o foco, mas deixo em aberto para um próximo tutorial.

e recebo ele aqui :

Recebendo os dados do Bundle recebemos o atual Intent com o método getIntent() e pegamos o Bundle que é enviado a ele, enviamos o objeto barra widget.RattingBar e devolvemos o int passando a chave correta, caso contrario não teremos acesso aos dados. 

resutaldo : 




Bom galera, obrigado e até breve.

sábado, 3 de maio de 2014

Calculo Fatorial com Android

Ao produto dos números naturais começando em n e decrescendo até 1 denominamos de fatorial de n e representamos por n!.
Segundo tal definição, o fatorial de 5 é representado por 5! e lê-se 5 fatorial.
5! é igual a 5 . 4 . 3 . 2 . 1 que é igual a 120, assim como 4! é igual a 4 . 3 . 2 . 1 que é igual a 24, como 3! é igual a 3 . 2 . 1 que é igual a 6 e que 2! é igual a 2 . 1 que é igual a 2.
Por definição tanto 0!, quanto 1! são iguais a 1.
fonte : Matemática Didática.



A aplicação construída e rodando o nosso método de calculo é :

String calculo que recebe como argumento um EditText, a nossa forma de calcular é usar a classe wrapper Integer para converter a String capturada do EditText para um inteiro, feito isso o calculo é feito dessa maneira : 
n! = n . (n - 1)!  =  n . (n - 1) . (n - 2)! ...
o calculo termina em *2 pois todo numero natural multiplicado por 1 é ele mesmo.





A aplicação rodando , fazendo o calculo 5! (fatorial) utilizamos uma String para armazenar os dados do laço de repetição para incrementar e mostrar os dados dentro de um ScrollView encadeado com um TextView.

*Vale lembrar que a aplicação visa o calculo dentro de um inteiro, caso você queira calcular números maiores utilize float ou BigDecimal , verificações nulas também não foram feitas. 



A classe java : 


o XML : 
*adicionar em values String resource String :
 <string name="calculo">Calculo Fatorial</string>





quarta-feira, 23 de abril de 2014

Projeto São Paulo Subway


Fala galera, hoje venho mostrar para vocês o meu projeto de trabalho chamado : São Paulo Subway, que é uma iniciativa para agregar aos estrangeiros os serviços do metrô já oferecidos para os residentes nacionais, o diferencial é que ele ira contar com um sistema de integração sms gratuito coisa que não tem no mercado ainda para essa função , além de outras funções como temperatura atual  e status atual das linhas do metrô , tudo em tempo real com um algorítimo de carregamento instantâneo que vem sendo melhorado a mais de um ano por mim mesmo, devido a alguns contratempos ele ira demorar um pouco a mais para ser lançado, coisa de duas semanas no máximo, pois  quero agregar a outras plataformas, já que ele só esta atrelado a Amazon e o Android, devido a Amazon ter coberto os custos do desenvolvimento do projeto.



Algumas imagens :
A primeira versão do Banner.

a nova tela inicial : 


Consulta das linhas em tempo real direto do metrô


Temperatura em tempo real e em duas escalas. 


Sms Denuncia sem necessidade de créditos 





Telefones uteis



E por ultimo um vídeo bem simples dele em funcionamento :


Link para baixar o *apk beta para testes :
Tamanho : 11 MB
versão BETA 2
Previsão de tamanho da versão final : 3 mb

 Clque aqui para baixar SãoPauloSubway.apk

domingo, 20 de abril de 2014

Jogo da velha em Java feito via Bloco de Notas.

Fala galera, feriadão ai e você sem fazer nada ?! vou mostrar para vocês uma versão minha do jogo da velha  feita via bloco de notas e compilado pela IDE netbeans, o jar esta ai e o código também, qualquer dúvida estou aqui a disposição.





O jogo é baseado em duas classes  a classe :

Interface : 

Que controla todo o jogo,gui e trás a mecânica dele , que contém os métodos : 

Void Analisa ();
Void Jogada(button);
Void terminar();

Main : 

Tem um método estático Start() , usado para reiniciar o jogo diretamente pela interface, e possui o método
main para executar o projeto. 

Código da construção da GUI  :


Projeto completo : 





Vídeo  : 


até mais galera,
 Write Once Run Anywhere. 

terça-feira, 15 de abril de 2014

Potenciação sem o uso da Classe Math

Fala galera, hoje vou mostrar para vocês a conversão de um algorítimo muito simples, porém que causa muita dor de cabeça para que está iniciando no mundo do desenvolvimento, quando seu professor utiliza a classe Math para os cálculos, tudo é mais fácil , não é? hoje vamos fazer o calculo de uma potencia sem o  uso da classe Math, utilizei apenas ao quadrado, mas esse algorítimo fica livre para vocês elevarem ao numero que quiserem , desde que comporte em um Inteiro.


O código : 



E ele abaixo : 

Dentro do método main : 

{
//Expoente da potenciação 
int expo = 2;  // pode ser alterado
//Recebe o numero via String e converte pela classe Wrapper Integer
//com seu método statico parseint
int numero = Integer.parseInt(JOptionPane.showInputDialog(null,"Digite o numero a 
+  ser elevado ao quadrado!"));
//numero de vezes que ira multiplicar,ou seja ele vezes ele 
int valor = 1;
//mostra o numero inicial, final foi mesmo para exemplificar
//que nao vamos alterar esse numero 
final int mostranumero = numero;
//enquanto valor for menor que 2 , ou seja vezes que sera multiplicado 
while(valor < 2){
numero *= numero; //*= multiplica e concatena o numero 
valor++; //incrementa o valor 
}
//mostra na tela (Ambos) 
System.out.println(numero);
JOptionPane.showMessageDialog(null,mostranumero+"²"+" é igual a : "+numero);
 

domingo, 6 de abril de 2014

[Algoritimo convertido] Diferença entre 3 números em Java

Lembro do meu inicio na programação quando eu me enroscava nos algorítimos mais fáceis, e meu professor dizia que nós não eramos cientistas da computação para fazermos aquilo, mas hoje me veio uma coisa interessante, devido a falta de tempo para postar , peguei um exercício que é abordado nas maiores federais do país e resolvi  o problema para vocês examinarem e exercitarem mais o raciocínio de vocês.

O algorítimo tem como ser mais otimizado, porém isso não vem ao caso :

No caso o problema é : Receba 3 números inteiros, encontre o maior, o médio e o menor, independente da ordem, sem utilizar uma matriz.

Video :

O código : 



quinta-feira, 27 de março de 2014

Android Wear e Java 8 você já está preparado?

Recebi um e-mail sobre o lançamento mundial do Java 8 , a um tempo atrás, porém não tive tempo de postar aqui , mas como já era esperado a linguagem recebeu diversas modificações e melhorias principalmente aquelas que nós desenvolvedores sempre requisitamos. Chegando em casa , resolvi terminar meus projetos ,  percebi que havia uma atualização no SDK do Android, e nele junto a versão 4.4.2 veio a atualização para trabalhar com o Android Wear a plataforma de tecnologia vestível da google, ainda estou estudando as duas atualizações , mas aconselho a vocês também acompanharem a evolução do mercado :


Agora e o Java 8 ? você já esta preparado ? veja as melhorias e modificações que ocorreram na linguagem :


O Java 8 estava marcado para ser lançado em meados de 2014(eis aqui em que estamos) , e nele veio a maior mudança na linguagem desde a versão 5 (Tiger) , que são as expressões : Lambda que alteram a forma de codificação da linguagem bruscamente , herdando contextos de outras linguagens funcionais como : Lisp e o Haskell. Se você já programa nessas linguagens ou em Scalla (Executada pela JVM) não terá tanta dificuldade em assimilar essas mudanças, mas se você nunca utilizou essa função ou não sabe por onde começar , só tenho algo a lhe dizer : estude, pois isso vai mudar seu jeito de programar significativamente.

API de datas


Como todos nos sabemos(ou não) a API antiga de datas do Java era muito complicada,insegura e estranha de se programar, tanto que muitos optavam para API's externas como a JODATime(quem não conhece, vale a pena conferir) , mas devido a inúmeros pedidos da comunidade, eles acataram e atualizaram ela , de uma formal geral ficou muito mais fácil e seguro utiliza-la. 


Bom galera, é isso.

até a próxima.

domingo, 16 de março de 2014

Ciclos de Vida de uma aplicação Android

Os dispositivos móveis quando começaram a engatinhar nas aplicações móveis tinham um grande problema,eles suportavam uma unica aplicação em execução, ou seja : se você estivesse a utilizar algum aplicativo e não tivesse salvado seus dados e do nada seu telefone móvel tocasse, logo você perderia
tudo pois a aplicação era removida da pilha de memoria, quando criaram o sistema de multi-tarefas 
também não foi diferente , o "multitask" do inglês em tradução live : multitarefas , trouxe uma liberdade
maior para o usuário móvel , nele era possível executar duas ou mais funções simultaneamente.

Como funciona o sistema multitarefas ? 
-Ele é basicamente como nós conhecemos no Windows, as aplicações entram na pilha da memória e ficam
em execução em segundo plano quando não estão em uso.

O que é o ciclo de vida de uma aplicação e como ele funciona ? 

-Bom , nos dispositivos móveis que ainda são  carentes de hardwares robustos na maioria dos casos, ou até mesmo pelo excesso de aplicações rodando simultaneamente ou mesmo pela prioridade de uma aplicação,abandono da mesma e no caso do fechamento de uma aplicação, temos os ciclos de vida , que nada mais são que os estados de uma aplicação, veja a imagem abaixo : 




O tipos de ciclo de vida são : 

onCreate() : Criando a aplicação, desenhando a tela ,  em suma preparando a aplicação para iniciar.

onStart() : Iniciando a aplicação de fato, o "boot" do aplicativo , quando ela esta em onStart() ela já esta visível para o usuário. 

onRestart() : Quando a aplicação é reiniciada , ela volta no método onRestart.


onResume() responsável pela retomada da aplicação , você esta voltando para ela.

onPause() responsável por deixar a aplicação em pausa,aguardando a interação.

onStop() responsável por operar uma aplicação que foi "abandonada" pelo usuário. 

onDestroy() : remove a aplicação da pilha, ou seja semelhante ao System.exit(0);

Tipos não utilizados no projeto :

onSaveInstanceState() : Responsável por salvar os dados do aplicativo antes dele entrar em onPause;

onRestoreInstanceState() utilizado para trazer os dados novamente depois da aplicação entrar em onResume(); 


um video demonstrando os ciclos de vida em uso : 


o código da aplicação ai : 


terça-feira, 11 de março de 2014

Explorando a falha do Whatsapp com o Java

"Falha grave no Whatsapp permite que qualquer aplicativo roube suas mensagens. "


confira a materia completa : 

Bom galera, hoje vim mostrar como utilizar a falha encontrada no Whatsapp de uma forma "didática", vou ensinar vocês a transformar o arquivo em códigos binários ,  ,assim você terá acesso as informações contidas nele(mas não vou ensinar como)e bom isso vai até o Facebook (atual proprietário) lançar uma atualização de emergência , então enjoy.

Para essa tarefa iremos precisar de :
conhecimentos em Java.
uma conta no Whatsapp ativa e com mensagens.
uma ide  ou compilador Java

bom esse é o caminho das pedras , aqui estão todas as suas mensagens enviadas/recebidas pelo whatsapp, você terá de aprender a encontra-las,mas adianto que elas ficam na parte de backup.

mas vamos focar no Java, nossa tarefa e transformar esses arquivos em bytes, vamos copia-los, pois esse é o intuito do post, vamos aprender a copiar arquivos em Java, mas se você se interessar em abrir as mensagens nada te impede de fazer isso copiando isso para a mesma pasta do seu smartphone e abrindo com o whatsapp.

bom eu vou copiar o arquivo "mensagem_descriptografada_whats" da pasta original para a pasta copia e vou mostrar como fazer isso :




esse é o código para a função, vou disponibilizar em breve o código;





domingo, 9 de março de 2014

Separando String's com o método split()

Fala galera, mais uma da série "Debulhando a classe String" , dessa vez uma rapidinha pois estou com muito
trabalho, enfim ; Vou ensina-los a separar as Strings de vocês com um método muito interessante o método Split.

Aprendiz :
-Ok,mas para que ele serve?

Jhonatan :
-Bom temos o seguinte texto : José Silva de Souza, e queremos separar nome e sobre nome, como proceder? ou melhor, temos umas lista de produtos : arroz,feijão,batatas,ovos. Como separar essa String ?

Aprendiz :
-Bom Jhonatan , isso é um pouco complicado devo utilizar o método substring?

Jhonatan :
-Bom, não é a forma correta utilizar o método substring, pois temos o método Split e vou mostar como ele funciona.

Bom utilizei um simples diálogo para ilustrar o funcionamento prático do método split(), mas vamos para o lado técnico da coisa , o trabalho do Split e nos retornar um Array(Matriz) de String's de acordo como construirmos o mesmo, um exemplo :

String [] separado = nome.split(" ");

nome.split está nos retornando um array no qual as palavras separadas por " " (Espaço) serão alocadas sucessivamente em uma posição.

Logo :
"José Silva de Souza" teremos : 4 posições

separado [0] = "José"
separado[1] = "Silva";
separado [2] = "de";
separado [3] = "Souza";

agora no exemplo dos produtos temos :
uma imagem com o exemplo :

que construir o método Split com "," exemplo :

String produtos = "arroz,feijão,batatas,ovos";
String [] sprodutos = produtos.split(",");

então teremos 4 posições

onde  : sprodutos [0] = "arroz"
           sprodutos [1] = "feijão"
           sprodutos [2] = "batatas"
           sprodutos [3] = "ovos"

também podemos limitar o numero de retorno do método , já que o mesmo foi sobrecarregado na classe ancestral logo o construtor é versátil e temos a opção de fazer o seguinte :

String [] separado = nome.split(" ",2);

O que ira delimitar o numero de separações para 2 onde iremos receber agora
Logo :
"José Silva de Souza" teremos : 2 posições

separado [0] = "José "
separado [1] = "Silva de Souza";

se tivessemos contruido com  nome.split(" ",3);

teriamos :
separado [0] = "José "
seperado [1] = "Silva"
separado [2] = "de Souza";


Bom, por hoje é só pessoal, qualquer dúvida deixem ai nos comentários, abraços.




quinta-feira, 6 de março de 2014

Formatando um tipo Double para moeda

Converter valores monetarios em um Double sempre foram um problema
para programadores principiantes , principalmente no quesito separação das
casas decimais, e se fosse possível resolver esse problema com poucas
linhas de código ?
-seria perfeito.
É possivel , temos a classe NumberFormat
do pacote java.text que é responsavel por formatações
e manipulações de textos no Java , e o melhor?
- ela é nativa?
acertou!
pois bem vamos lá para a explicação marota do código :

primeiramente iremos importar nossa classe

import java.text.*; //aqui estamos importando todas as classes
do pacote java.text , não é nescessario isso ,esta ai para que
você encontre por si só a forma correta de resolver isso.

proximo passo :
dentro do método main criei a variavel primitiva do tipo Double

Double valor = 9990.0; //essa belezinha que iremos formatar

String f; //criei uma String para receber o valor formatado
é interessante frizar que : esse método é valido para mostrar
o valor para o cliente e não manipular valores com ele pois uma String
para valores não é uma boa pratica de programação(Gambiarray).

f = NumberFormat.getCurrencyInstance().format(valor);
o que entendemos por esse código?
simples : f recebe da Classe NumberFormat o método getCurrencyInstance
que pega a moeda corrente e te
 retorna uma instancia de NumberFormat
para você pegar o método format que recebe como parametro
o valor a ser formatado.

como resolver aquele pepino la do import?
simples : java.text.NumberFormat;

System.out.println(f);//exibe o f já formatado
$9,990.00

valeu, falou!

quarta-feira, 5 de março de 2014

Convertendo CharArray para String



A conversão de tipos primitivos para objetos no Java não é nenhum mistério , mas vale para os iniciantes
aprenderem como fazer uma simples conversão de um array de char para uma String.
Bom vamos lá : estamos dentro do método main , temos um array de char com as posições correntes  : J[0]
h[1],o[2].n[3],a[4],t[5],a[6],n[7], e criada uma String chamada nome e com o valor "" ,e convertemos nossa String para um CharArray com o método do mesmo nome que se encontra na classe String usamos um for de 0 ao tamanho do array já que o método length nos retorna o tamanho do array que estamos utilizando no caso 8 contando o numero 0 , nosso for vai da primeira posição até a ultima concatenando o valor a nossa String "+=" e depois imprimimos o valor da String.

viu como é fácil ? qualquer duvida deixar ai nos comentários, abraços.