Manipulação de Texto com a Classe String
No Java, cadeias de caracteres são representadas pela classe String. Uma característica fundamental é a sua imutabilidade: uma vez instanciada, o valor da String não pode ser modificado. Qualquer operação de alteração resulta na criação de um novo objeto.
| Método | Descrição |
|---|---|
length() |
Retorna o total de caracteres da sequência. |
equals(Object obj) |
Valida se o conteúdo de duas strings é idêntico. |
equalsIgnoreCase(String str) |
Compara conteúdos ignorando a diferença entre maiúsculas e minúsculas. |
trim() |
Elimina espaços em branco nas extremidades da string. |
charAt(int index) |
Extrai o caractere presente em uma posição específica. |
indexOf(String str) |
Localiza o índice da primeira ocorrência de um termo. |
replace(old, new) |
Substitui trechos de texto por novos valores (suporta Regex). |
substring(int start) |
Corta a string a partir do índice infromado até o final. |
startsWith(String prefix) |
Verifica se o texto inicia com o prefixo indicado. |
Trabalhando com Datas: Date e SimpleDateFormat
A classe Date encapsula um momento específico no tempo, com precisão de milissegundos, baseando-se na era Unix (1 de janeiro de 1970).
Para formatar objetos de data em texto legível ou converter strings em objetos de data, utiliza-se a classe SimpleDateFormat.
// Definindo um padrão de formatação brasileiro
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
// Convertendo objeto Date para String
Date agora = new Date();
String dataFormatada = formatador.format(agora);
System.out.println("Data atual: " + dataFormatada);
// Convertendo String para objeto Date
try {
String entrada = "25/12/2023 20:00:00";
Date dataFinal = formatador.parse(entrada);
System.out.println("Timestamp: " + dataFinal.getTime());
} catch (ParseException e) {
System.err.println("Erro: O formato da data é inválido.");
}
Classes Wrapper e Conversão de Tipos
Cada tipo primitivo possui uma classe correspondente (Wrapper) que permite tratar valores básicos como objetos, possibilitando o uso em coleções e o acesso a métodos utilitários.
int→Integerchar→Characterdouble→Doubleboolean→Boolean
Autoboxing e Unboxing: O Java realiza automaticamente a conversão entre primitivos e wrappers. Por exemplo, Integer x = 10; (Autoboxing) e int y = x; (Unboxing).
Exemplos de conversão de dados:
// Texto para Inteiro
int idade = Integer.parseInt("25");
// Inteiro para Texto
String precoTexto = String.valueOf(199.90);
String concatenacao = 100 + ""; // Forma simplificada
Entrada de Dados e Aleatoriedade
A classe Scanner facilita a leitura de entradas do usuário, enquanto a classe Random é utilizada para gerar valores pseudoaleatórios.
// Leitura do console
Scanner entrada = new Scanner(System.in);
System.out.print("Digite um número: ");
int valorLido = entrada.nextInt();
// Geração de números
Random gerador = new Random();
int numeroSorteado = gerador.nextInt(50); // Gera entre 0 e 49
Interface Gráfica com Swing (GUI)
O pacote javax.swing oferece componentes para criação de interfaces desktop. O contêiner principal é o JFrame, que abriga elementos como botões (JButton) e campos de texto (JTextField).
Configuração Básica de Janela:
JFrame janela = new JFrame("Sistema de Acesso");
janela.setSize(400, 250);
janela.setLocationRelativeTo(null); // Centraliza
janela.setLayout(null); // Layout absoluto
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Adicionando um campo de senha
JPasswordField campoSenha = new JPasswordField();
campoSenha.setBounds(50, 50, 200, 30);
janela.add(campoSenha);
// Botão com evento de clique
JButton btnConfirmar = new JButton("Entrar");
btnConfirmar.setBounds(50, 100, 100, 30);
btnConfirmar.addActionListener(e -> {
char[] pass = campoSenha.getPassword();
if (pass.length == 0) {
JOptionPane.showMessageDialog(janela, "Senha obrigatória!");
} else {
JOptionPane.showMessageDialog(janela, "Processando login...");
}
});
janela.add(btnConfirmar);
janela.setVisible(true);
Para exibição de imagens, utiliza-se o JLabel em conjunto com o ImageIcon, permitindo a renderização de elementos visuais dentro do contêiner.