Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD e VBA
PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Java ::: Dicas & Truques ::: Strings e Caracteres

Como usar o método charAt() da classe String para obter o caractere em uma determinada posição de uma frase ou texto - Revisado

Quantidade de visualizações: 1 vezes
Em várias situações, principalmente quando estamos trabalhando com palavras e textos em Java, surge a necessidade de acessarmos as letras individuais de strings. Para isso podemos usar o método charAt() da classe String. Este método recebe um inteiro indicando o índice do caractere na String. Lembre-se de que os índices começam sempre em 0 em Java. O retorno do método charAt() é um char.

Veja um exemplo:

 
public class Estudos{
  public static void main(String[] args){
    String frase = "Programar em Java é muito bom";
     
    // Lembre-se: o indice começa em 0
    char letra = frase.charAt(2);
     
    System.out.println("O caractere no índice 2 é: " +
      letra);
     
    System.exit(0);
  }
} 

Ao executarmos este código nós teremos o seguinte resultado:

O caractere no índice 2 é: o

Esta dica foi revisada e testada no Java 8.


Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

Python Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)

Quantidade de visualizações: 4614 vezes
Nesta dica veremos como implementar a ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção na linguagem Python.

A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados.

A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação.

A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas.

Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição.

Vamos ver a implementação na linguagem Python agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}:

# método que permite ordenar o vetor de inteiros
# usando a ordenação Insertion Sort
def insertionSort(vetor):
  # percorre todos os elementos do vetor começando
  # pelo segundo elemento
  for i in range(len(vetor)):
    atual = vetor[i] # o valor atual a ser inserido
    # começa a comparar com a célula à esquerda de i
    j = i - 1
      
    # enquanto vetor[j] estiver fora de ordem em relação
    # a atual
    while((j >= 0) and (vetor[j] > atual)):
      # movemos vetor[j] para a direita e decrementamos j
      vetor[j + 1] = vetor[j]
      j = j - 1
      
      # colocamos atual em seu devido lugar
      vetor[j + 1] = atual

# função principal do programa
def main():
  # cria uma lista de inteiros
  valores = [4, 6, 2, 8, 1, 9, 3, 0, 11]
  
  # exibimos o vetor na ordem original
  print("Ordem original:\n")
  for i in range(len(valores)):
    print(valores[i], end = "  ")
    
  # vamos ordenar o vetor agora
  insertionSort(valores)
    
  # exibimos o vetor ordenado
  print("\n\nOrdenado:\n")
  for i in range(len(valores)):
    print(valores[i], end = "  ")

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Sem ordenação:

4 6 2 8 1 9 3 0 11

Ordenada usando Insertion Sort:

0 1 2 3 4 6 8 9 11


Java ::: Classes e Componentes ::: JTable

Java Swing - Como colorir o fundo das células de uma JTable baseado em seus valores

Quantidade de visualizações: 3 vezes
Nesta dica veremos como é possível criar uma classe personalizada que extende a classe JLabel e implementa a interface TableCellRenderer e usá-la como renderizador das células de uma JTable. Dessa forma conseguiremos aplicar uma cor diferente a cada célula dependendo do seu valor. Veja o resultado na figura abaixo:



Veja agora o código Java Swing completo para o exemplo:

package arquivodecodigos;

import javax.swing.*;
import java.awt.*;
import javax.swing.table.*;
 
public class Estudos extends JFrame{
  public Estudos(){
    super("Exemplo de uma tabela simples");
         
    // colunas da tabela
    String[] colunas = {"Nome", "Idade", "Sexo"};
         
    // conteúdo da tabela   
    Object[][] conteudo = {
        {"Osmar J. Silva", "32", "Masculino"},
        {"Maria Clara Gomes", "19", "Feminino"},
        {"Fernando Gomes", "15", "Masculino"},
        {"Carlos Vieira", "40", "Masculino"}
    };
         
    // constrói a tabela
    JTable tabela = new JTable(conteudo, colunas);
     
    // quero colorir o fundo das células da segunda coluna
    // se o valor encontrado for menor que 20
    TableCellRenderer tcr = new Colorir();
    TableColumn column = 
        tabela.getColumnModel().getColumn(1);
    column.setCellRenderer(tcr);
  
    tabela.setPreferredScrollableViewportSize(new 
          Dimension(350, 50));
     
    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);
  }
}
 
class Colorir extends JLabel implements TableCellRenderer{
  public Colorir(){
    setOpaque(true);
  }
   
  @Override
  public Component getTableCellRendererComponent(
     JTable table, 
     Object value, boolean isSelected, boolean hasFocus,
        int row, int column){
     
     if(Integer.parseInt(value.toString()) < 20){
       setBackground(Color.YELLOW); 
     }
     else{
       setBackground(table.getBackground());        
     }
      
     setText(value.toString());
         
     return this;       
  }
   
  @Override
  public void validate() {}
  
  @Override
  public void revalidate() {}
  
  @Override
  protected void firePropertyChange(String propertyName,
     Object oldValue, Object newValue) {}
  
  @Override
  public void firePropertyChange(String propertyName,
     boolean oldValue, boolean newValue) {}  
}



Python ::: Tkinter GUI Toolkit ::: Círculos, Ovais e Elípses

Como desenhar círculos no Tkinter usando a função create_oval() do componente Canvas

Quantidade de visualizações: 1647 vezes
Em várias situações nós precisamos desenhar círculos não preenchidos e preenchidos em Tkinter. Para isso nós podemos usar a função create_oval() do componente Canvas.

Em sua forma mais simples, a função create_oval() requer as coordenadas x e y a partir das quais o círculo ou elípse será desenhada e a largura e a altura do retângulo dentro do qual o círculo estará contido. Para desenhar uma oval ou elípse, basta manipular a largura ou altura desse retângulo.

Veja um trecho de código no qual usamos a função create_oval() para desenhar um círculo com 5 pixels de largura da linha de desenho:

# vamos importar o módulo Tkinter
from tkinter import *
from tkinter.ttk import *
 
# método principal
def main():
  # cria a janela principal da aplicação
  janela_principal = Tk() 
  
  # define as dimensões da janela
  janela_principal.geometry("400x350")
  
  # define o título da janela
  janela_principal.title("Uso do controle Canvas")
 
  # vamos criar o objeto Canvas
  canvas = Canvas(janela_principal, bg="white", width=400, height=350)
 
  # colocamos o Canvas na janela principal
  canvas.grid(row=0, column=0)
 
  # agora vamos desenhar um círculo no Canvas começando nas
  # coordenadas x=20 e y=30 centro de um retângulo de largura
  # 150 pixels por uma altura de 150 pixels e largura da linha
  # de 5 pixels
  canvas.create_oval(20, 30, 150, 150, width="5")
 
  # entramos no loop de eventos 
  janela_principal.mainloop()
 
if __name__== "__main__":
  main()

Note que a largura da linha de desenho foi informada por meio do parâmetro width. Se quisermos definir também a cor da linha do desenho, basta usarmos o parâmetro outline e fornecer a cor desejada.


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby


E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser. Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 19,90


© 2026 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 20 usuários muito felizes estudando em nosso site.