Java ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como usar o método format() da classe NumberFormat do Java para formatar um valor float ou double de acordo com as configurações regionais - RevisadoQuantidade de visualizações: 11611 vezes |
|
Nesta dica mostrarei como usar o método format() da classe NumberFormat da linguagem Java. Esta classe está no pacote java.text e é usada para a formatação e análise de valores numéricos. Note como usei o método getInstance() sem argumentos. Isso nos permite retornar uma instância de NumberFormat de acordo com as configurações regionais da máquina na qual o código está sendo executado. Veja o código completo:
package arquivodecodigos;
import java.text.NumberFormat;
public class Estudos{
public static void main(String[] args){
// vamos double a ser formatado
double valor = 1234567.89;
// vamos obter uma instância de acordo com as configurações
// regionais
NumberFormat nf = NumberFormat.getInstance();
// e agora usamos o método format() para formatar
String numFormatado = nf.format(valor);
// exibimos o valor original
System.out.println("Sem formatação: " + valor);
// com formatação
System.out.println("Com formatação: " + numFormatado);
}
}
Ao executar este código nós teremos o seguinte resultado: Sem formatação: 1234567.89 Com formatação: 1.234.567,89 Esta dica foi revisada e testada no Java 8. |
C ::: Dicas & Truques ::: Struct (Estruturas, Registros) |
Como alocar memória para instâncias de uma estrutura (struct) e acessá-las usando ponteiros em CQuantidade de visualizações: 11660 vezes |
|
Esta dica mostra como declarar uma estrutura (struct), alocar duas instâncias desta e acessá-las usando ponteiros. Considere a seguinte struct:
// define a estrutura Livro
struct Livro{
char titulo[80];
int codigo;
int paginas;
};
Note que agora a variável titulo foi declarada como uma matriz de caracteres de 80 posições. Mais adiante você entenderá o propósito de tal abordagem. Veja agora como alocamos memória para duas instâncias desta estrutura: // cria dois ponteiros para duas instâncias (recém-alocadas) // de Livro Livro *a = (struct Livro*)malloc(sizeof(struct Livro)); Livro *b = (struct Livro*)malloc(sizeof(struct Livro)); A partir deste ponto as variáveis a e b são ponteiros para as duas instâncias recém alocadas. Observe que, quando usamos ponteiros para estruturas, seus membros são acessados usando-se a notação -> em vez do ponto. Veja: a->codigo = 342; a->paginas = 230; Para definir o valor para o membro titulo é preciso lançar mão da função strcpy(). Isso é feito porque estamos lidando com ponteiros, e cada instância de Livro possui sua área de memória a partir da qual a posição inicial da cadeia de caracteres que receberá o título do livro já foi inicializada. Veja: strcpy(a->titulo, "Programando em Java"); Observe agora o código completo para o exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// define a estrutura Livro
struct Livro{
char titulo[80];
int codigo;
int paginas;
};
int main(int argc, char *argv[]){
// cria dois ponteiros para duas instâncias (recém-alocadas)
// de Livro
Livro *a = (struct Livro*)malloc(sizeof(struct Livro));
Livro *b = (struct Livro*)malloc(sizeof(struct Livro));
// preenche os dados do primeiro Livro
// Estamos usando ponteiros agora. Para definir o título
// do livro é preciso usar a função strcpy, já que estamos
// usando uma cadeia de caracteres
strcpy(a->titulo, "Programando em Java");
a->codigo = 342;
a->paginas = 230;
// preenche os dados do segundo Livro
strcpy(b->titulo, "JavaScript - O Guia Prático");
b->codigo = 675;
b->paginas = 930;
// exibe os dados do primeiro livro
printf("Primeiro Livro\nTitulo: %s\nCodigo: %d\nPaginas: %d\n",
a->titulo, a->codigo, a->paginas);
// exibe os dados do segundo livro
printf("\nSegundo Livro\nTitulo: %s\nCodigo: %d\nPaginas: %d\n",
b->titulo, b->codigo, b->paginas);
puts("\n\n");
system("PAUSE");
return 0;
}
|
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como detectar qual linha ou coluna está selecionada em uma tabela JTableQuantidade de visualizações: 3 vezes |
|
Nesta dica mostrarei como podemos usar o método valueChanged() da interface ListSelectionListener para detectar qual linha ou coluna está selecionada em um objeto JTable. Essa técnica interessante, pois permite facilmente a construção de tabelas mestre-detalhe, na qual selecionamos um cliente em uma JTable e outra JTable é atualizada mostrando somente os pedidos para o cliente selecionado. Eis o resultado na imagem abaixo: ![]() Veja o código completo para o exemplo:
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
public class Estudos extends JFrame{
private boolean ALLOW_COLUMN_SELECTION = false;
private boolean ALLOW_ROW_SELECTION = true;
public Estudos(){
super("Exemplo de uma tabela simples");
// colunas da tabela
String[] colunas = {"Cidade", "Estado", "Habitantes"};
// conteúdo da tabela
Object[][] conteudo = {
{"Goiânia", "GO", "43.023.432"},
{"São Paulo", "SP", "5.343.234"},
{"Rio de Janeiro", "RJ", "6.434.212"},
{"Jussara", "GO", "87.454"},
{"Barra do Garças", "MT", "64.344"}
};
// constrói a tabela
final JTable tabela = new JTable(conteudo, colunas);
tabela.setPreferredScrollableViewportSize(new Dimension(350, 50));
// permite selecionar apenas uma linha de cada vez
tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// detecta seleções de linha
if(ALLOW_ROW_SELECTION){ // verdadeiro por padrão
ListSelectionModel rowSM = tabela.getSelectionModel();
rowSM.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if(e.getValueIsAdjusting())
return;
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if(lsm.isSelectionEmpty()){
System.out.println("Nenhuma linha selecionada.");
}
else{
int selectedRow = lsm.getMinSelectionIndex();
System.out.println("Linha " + selectedRow
+ " foi selecionada.");
}
}
});
}
else{
tabela.setRowSelectionAllowed(false);
}
if(ALLOW_COLUMN_SELECTION){ // falso por padrão
if(ALLOW_ROW_SELECTION){
tabela.setCellSelectionEnabled(true);
}
tabela.setColumnSelectionAllowed(true);
ListSelectionModel colSM = tabela.getColumnModel().getSelectionModel();
colSM.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if(e.getValueIsAdjusting())
return;
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if(lsm.isSelectionEmpty()) {
System.out.println("Nenhuma coluna selecionada.");
}
else{
int selectedCol = lsm.getMinSelectionIndex();
System.out.println("Coluna "
+ selectedCol + " está selecionada.");
}
}
});
}
Container c = getContentPane();
c.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane(tabela);
c.add(scrollPane);
setSize(400, 300);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
Python ::: Dicas & Truques ::: Lista (List) |
Como remover e retornar um item aleatório em uma lista Python usando a função pop() e um número randômicoQuantidade de visualizações: 9796 vezes |
|
Em dicas anteriores eu mostrei como é possível usar o método pop() do objeto List da linguagem Python para remover elementos no início, final e em determinadas posições de uma lista. Agora mostrarei como é possível fornecer um índice aleatório para a função pop(), de forma a sortear o elemento que estará sendo removido. Note que o número randômico deverá estar nas faixas de índices aceitáveis. Veja o exemplo Python completo:
"""
Este exemplo mostra como excluir e retornar
um ítem aleatório em uma lista
"""
import random
def main():
# cria uma lista de inteiros
valores = [4, 23, 7, 1, 0, 54]
# imprime a lista
print(valores)
# remove um ítem aleatório
valor = valores.pop(random.randrange(0, len(valores)))
print("Item removido:", valor)
# exibe a lista novamente
print(valores)
if __name__== "__main__":
main()
Ao executar este código Python nós teremos um resultado parecido com: [4, 23, 7, 1, 0, 54] Item removido: 54 [4, 23, 7, 1, 0] |
Você também poderá gostar das dicas e truques de programação abaixo |
|
JavaScript - Como testar se todos os elementos de um array satisfazem uma condição em JavaScript usando a função every() JavaScript - Como remover elementos duplicados de um array em JavaScript usando um Set e o método Array.from() AutoCAD .NET API C# - Como selecionar uma polilinha no AutoCAD e mostrar as coordenadas de suas vértices usando a AutoCAD .NET C# API VisuAlg - Exercícios Resolvidos de VisuAlg - Como calcular e exibir os 50 primeiros números primos em VisuAlg C++ - Programação Orientada a Objetos em C++ - Como criar e usar métodos estáticos em suas classes C++ |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






