PHP ::: Dicas & Truques ::: Strings e Caracteres |
Como transformar uma string em letras minúsculas em PHP usando a função strtolower()Quantidade de visualizações: 48 vezes |
A função strtolower() do PHP pode ser usada quando queremos converter uma palavra, frase ou texto para letras minúsculas. Veja um exemplo de seu uso: <?php // vamos definir a codificação como iso-8859-1 ini_set('default_charset', "iso-8859-1"); // vamos criar uma string $frase = "PHP? Eu gosto de PHP"; echo "A frase original é: " . $frase; // agora vamos converter a frase para letras // minúsculas $frase_minusculas = strtolower($frase); echo "<br>Em letras minúsculas: " . $frase_minusculas; ?> Ao executarmos este código PHP nós teremos o seguinte resultado: A frase original é: PHP? Eu gosto de PHP Em letras minúsculas: php? eu gosto de php Ao executar este código no PHP 8, Windows 10 e codificação do arquivo em ANSI, o resultado da função strtolower() é o esperado, mas somente sem usar acentos e caracteres especiais. Veja: <?php // vamos definir a codificação como iso-8859-1 ini_set('default_charset', "iso-8859-1"); // vamos criar uma string $frase = "JAVA? NÃO! É DE PHP QUE EU GOSTO"; echo "A frase original é: " . $frase; // agora vamos converter a frase para letras // minúsculas $frase_minusculas = strtolower($frase); echo "<br>Em letras minúsculas: " . $frase_minusculas; ?> Ao executarmos o código novamente nós teremos a seguinte saída: A frase original é: JAVA? NÃO! É DE PHP QUE EU GOSTO Em letras minúsculas: java? nÃo! É de php que eu gosto Note que as letras acentuadas não foram convertidas para letras minúsculas. Isso aconteceu porque os caracteres acentuados são tratados como caracteres de múltiplos bytes, ou seja, multi-byte chars. A saída, nesse caso, e no PHP 8 (e acredito mais recentes), é usar a função mb_strtolower(). Veja: <?php // vamos definir a codificação como iso-8859-1 ini_set('default_charset', "iso-8859-1"); // vamos criar uma string $frase = "JAVA? NÃO! É DE PHP QUE EU GOSTO"; echo "A frase original é: " . $frase; // agora vamos converter a frase para letras // minúsculas $frase_minusculas = mb_strtolower($frase); echo "<br>Em letras minúsculas: " . $frase_minusculas; ?> Execute o código novamente e verá que o resultado agora está correto: A frase original é: JAVA? NÃO! É DE PHP QUE EU GOSTO Em letras minúsculas: java? não! é de php que eu gosto Agora você já sabe o primeiro passo para resolver problemas de acentuação no PHP. Bons estudos. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Razão e Proporção |
Exercícios Resolvidos de C - Como resolver problemas de razão e proporção em C - Em uma empresa, a razão entre o número de mulheres e o númeroQuantidade de visualizações: 521 vezes |
Pergunta/Tarefa: Em uma empresa, a razão entre o número de mulheres e o número de homens é de 3/5. Sabendo que há 30 homens nessa empresa, então o número de mulheres é: A) 18 B) 20 C) 22 D) 24 E) 27 Antes de tentarmos resolver esse problema em C, vamos relembrar o que são razão e proporção. Os conceitos de razão e proporção estão ligados ao quociente. A razão é o quociente de dois números, e a proporção é a igualdade entre duas razões. No exercício acima, o valor de 30 homens está fixo, mas seu programa C deverá pedir para o usuário informar a quantidade de homens. Isso vai permitir aplicar o algoritmo em situações diferentes da exposta aqui. Sua saída deve ser parecida com: Informe a quantidade de homens: 30 A quantidade de homens é: 30 A quantidade de mulheres é: 18.0 Veja a resolução comentada deste exercício usando C: #include <stdio.h> #include <stdlib.h> // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema float dividendo = 3.0; float divisor = 5.0; int quant_homens; float quant_mulheres; // vamos ler a quantidade de homens printf("Informe a quantidade de homens: "); scanf("%d", &quant_homens); printf("A quantidade de homens é: %d", quant_homens); // agora fazemos a multiplicação cruzada quant_mulheres = (quant_homens * dividendo); // e dividimos pelo divisor quant_mulheres = quant_mulheres / divisor; // e mostramos o resultado printf("\nA quantidade de mulheres é: %f", quant_mulheres); printf("\n\n"); system("PAUSE"); return 0; } |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como obter o texto selecionado em um controle JTextArea do Java SwingQuantidade de visualizações: 410 vezes |
Em algumas situações nós precisamos obter o texto selecionado pelo usuário em um componente JTextArea de nossas aplicações Java Swing. Isso pode ser feito com uma chamada ao seu método getSelectedText(). Veja um trecho de código no qual obtemos o texto selecionado em um JTextArea chamado textArea: textArea = new JTextArea(10, 20); String selecionado = textArea.getSelectedText(); |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como somar os valores dos elementos de um vetor de inteiros em JavaQuantidade de visualizações: 27141 vezes |
Nesta dica eu mostro como podemos usar um laço for para obter a soma dos valores dos elementos de um vetor (ou matriz) de inteiros em Java. Veja que aqui eu criei um método que recebe o vetor e retorna um valor int contendo a soma de todos os elementos. Veja o código completo para o exemplo: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ int[] valores = new int[5]; // inicializa os elementos do array valores[0] = 23; valores[1] = 65; valores[2] = 2; valores[3] = 87; valores[4] = 34; // obtém a soma int soma = soma(valores); System.out.println("A soma dos valores é: " + soma); System.exit(0); } public static int soma(int[] a){ int total = 0; for(int i = 0; i < a.length; i++){ total += a[i]; } return total; } } Ao executarmos este código nós teremos o seguinte resultado: A soma dos valores é: 211 |
Java ::: Dicas & Truques ::: Programação Orientada a Objetos |
Programação orientada a objetos em Java - Como usar o modificador protected em suas variáveis e métodos JavaQuantidade de visualizações: 10757 vezes |
O modificador protected pode ser aplicado às variáveis e métodos de uma classe. Membros de uma classe marcados como protected podem ser acessados por qualquer classe no mesmo pacote (package) ou por suas classes derivadas (subclasses), mesmo que estas classes estejam em pacotes diferentes. Contudo, a discussão sobre este modificador é um pouco mais profunda. Subclasses residentes em outros pacotes tem algumas limitações em relação ao acesso de variáveis e métodos marcados como protected em suas superclasses. Em resumo, uma subclasse em um pacote diferente pode sobrescrever métodos protected de suas superclasses. Além disso, instâncias destas subclasses podem acessar ou modificar variáveis protected herdadas de suas superclasses, assim como chamar os métodos protected herdados. Porém, estas instâncias não têm liberdade para efetuar estas ações em outras instâncias das mesmas subclasses. Veja um exemplo no qual mostramos como acessar variáveis marcadas como protected em uma classe a partir de sua classe derivada: // superclasse class Pessoa{ protected String nome; public String getNome(){ return this.nome; } } // subclasse class Aluno extends Pessoa{ public Aluno(){ this.nome = "Osmar J. Silva"; } } public class Estudos{ public static void main(String args[]){ // Cria um objeto da classe Aluno Aluno a = new Aluno(); System.out.println(a.getNome()); } } |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como excluir uma substring de uma string usando o método delete() da classe StringBuffer do Java - RevisadoQuantidade de visualizações: 251 vezes |
Em algumas situações nós gostaríamos de excluir parte de uma palavra ou texto, ou seja, remover uma substring de uma string. Para isso nós podemos usar o método delete() da classe StringBuffer da linguagem Java. Lembrando que a classe StringBuffer, do pacote java.lang, é usada em vez da classe String quando precisamos fazer muitas concatenações e adições ou remoções no conteúdo da string. Veja um exemplo de código no qual removemos parte do conteúdo de um StringBuffer: package arquivodecodigos; public class Estudos{ public static void main(String[] args){ StringBuffer frase = new StringBuffer("Gosto muito de Java"); // mostra o conteúdo original System.out.println("Frase original: " + frase); String remover = "muito "; // vamos obter o índice inicial do conteúdo a ser removido int pos = frase.indexOf(remover); // e agora vamos remover frase.delete(pos, pos + remover.length()); // com a remoção System.out.println("Depois da remoção: " + frase); System.exit(0); } } Após a execução deste código nós teremos o seguinte resultado: Frase original: Gosto muito de Java Depois da remoção: Gosto de Java |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Programação Orientada a Objetos |
Exercícios Resolvidos de Java - Escreva uma classe Biblioteca que possui uma ArrayList de objetos da classe Livro. Forneça um menu para listar, cadastrar, pesquisar e excluir livrosQuantidade de visualizações: 543 vezes |
Pergunta/Tarefa: Escreva um programa Java contendo duas classes: Biblioteca e Livro. A classe Biblioteca deverá ter uma coleção de livros, ou seja, uma ArrayList de objetos da classe Livro. Além da coleção de livros a classe Biblioteca deverá conter um atributo nome, que será informado assim que a classe for instanciada. A classe Livro, por sua vez, deverá possuir os atributos id, titulo, autor e paginas. O atributo id deverá ser auto-incremento, isto é, 1 para o primeiro livro cadastrado, 2 para o segundo, e assim por diante. Além disso, a exclusão de livros deverá ser feita de acordo com o seu id ou título. Seu programa deverá exibir um menu de opções para as diversas operações da biblioteca. Uma boa opção em Java é usar a estrutura switch case para a criação do menu de opções. Atenção: todos os métodos de manipulação de livros deverão estar na classe Biblioteca, e não na classe principal do programa Java. Para finalizar, tanto a classe Biblioteca quanto a classe Livro deverão apresentar boas práticas de programação orientada a objetos: nomenclatura correta de classes, atributos e métodos, encapsulamento de dados e construtores. Sua saída deverá ser parecida com: ------------------------------------------------- :: Biblioteca Programação e Artes :: ------------------------------------------------- Bem-vindo(a) ao sistema. Escolha a opção desejada 1 - Novo Livro 2 - Listar Livros 3 - Pesquisar Livro 4 - Excluir Livro 5 - Sair Sua opção: 1 Título: JAVA PARA INICIANTES Autor: OSMAR J SILVA Quant Páginas: 480 O livro foi cadastrado com sucesso Veja a resolução comentada deste exercício em Java: Código para a classe Livro, que deve estar no arquivo Livro.java: package estudos; // definição da classe Livro public class Livro { private int id; // id do livro. Não pode repetir private String titulo; private String autor; private int paginas; // construtor vazio da classe Livro public Livro() {} // construtor cheio da classe Livro public Livro(int id, String titulo, String autor, int paginas) { this.id = id; this.titulo = titulo; this.autor = autor; this.paginas = paginas; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getAutor() { return autor; } public void setAutor(String autor) { this.autor = autor; } public int getPaginas() { return paginas; } public void setPaginas(int paginas) { this.paginas = paginas; } } Código para a classe Biblioteca, que deve estar no arquivo Biblioteca.java: package estudos; // imports necessários import java.util.ArrayList; import java.util.Scanner; // definição da classe Biblioteca public class Biblioteca { String nome; ArrayList<Livro> livros; // ArrayList para guardar os livros // variável do tipo int para gerar IDs auto-incremento para os livros int idUltimoLivroCadastrado = 0; // construtor da classe public Biblioteca(String nome) { this.nome = nome; this.livros = new ArrayList(); } // exibe o menu de opções da biblioteca public void exibirMenu(){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // variáveis temporárias Livro temp; String pesquisaLivro; // um laço infinito com as opções do menu while(true){ System.out.println("\n-------------------------------------------------"); System.out.println(":: " + this.nome + " ::"); System.out.println("-------------------------------------------------"); System.out.println("Bem-vindo(a) ao sistema. Escolha a opção desejada\n"); System.out.println("1 - Novo Livro"); System.out.println("2 - Listar Livros"); System.out.println("3 - Pesquisar Livro"); System.out.println("4 - Excluir Livro"); System.out.println("5 - Sair"); System.out.print("\nSua opção: "); // lê a opção do usuário int opcao = Integer.parseInt(entrada.nextLine()); // um menu switch para ler as opções do menu switch(opcao){ case 1: // vamos cadastrar um novo livro System.out.print("\nTítulo: "); String titulo = entrada.nextLine(); System.out.print("Autor: "); String autor = entrada.nextLine(); System.out.print("Quant Páginas: "); int quantPaginas = Integer.parseInt(entrada.nextLine()); // vamos gerar o id deste livro int id = ++this.idUltimoLivroCadastrado; // agora vamos criar um novo objeto da classe Livro Livro livro = new Livro(id, titulo, autor, quantPaginas); // e o adicionamos no ArrayList de livros livros.add(livro); // e finalmente mostramos uma mensagem de sucesso. System.out.println("\nO livro foi cadastrado com sucesso"); break; case 2: // vamos listar os livros cadastrados if(livros.isEmpty()){ System.out.println("\nNão há nenhum livro cadastrado."); } else{ for(int i = 0; i < livros.size(); i++){ temp = livros.get(i); // obtém o livro da iteração atual System.out.println("\nId: " + temp.getId()); System.out.println("Título: " + temp.getTitulo()); System.out.println("Autor: " + temp.getAutor()); System.out.println("Quant. Paginas: " + temp.getPaginas()); } } break; case 3: // vamos pesquisar um livro System.out.print("\nInforme o id ou título do livro: "); pesquisaLivro = entrada.nextLine(); // chamamos o método que pesquisa o livro temp = this.pesquisarLivro(pesquisaLivro); if(temp == null){ // livro não encontrado System.out.println("\nO livro náo foi encontrado."); } else{ // mostra o livro encontrado System.out.println("\nId: " + temp.getId()); System.out.println("Título: " + temp.getTitulo()); System.out.println("Autor: " + temp.getAutor()); System.out.println("Quant. Paginas: " + temp.getPaginas()); } break; case 4: // vamos excluir um livro System.out.print("\nInforme o id ou título do livro a ser excluído: "); pesquisaLivro = entrada.nextLine(); // chamamos o método que pesquisa o livro temp = pesquisarLivro(pesquisaLivro); if(temp == null){ // livro não encontrado System.out.println("\nO livro não foi encontrado."); } else{ // vamos excluir este livro livros.remove(temp); System.out.println("\nLivro excluído com sucesso."); } break; case 5: // sai da aplicação System.out.println("\nObrigado por usar a biblioteca\n"); System.exit(0); default: System.out.println("\nOpção inválida\n"); break; } } } // método que pesquisa um livro pelo id ou e retorna um objeto da classe Livro public Livro pesquisarLivro(String pesquisaLivro){ Livro livro = null; // este livro existe? for(int i = 0; i < livros.size(); i++){ // pesquisa pelo id if(Integer.toString(livros.get(i).getId()).equals(pesquisaLivro)){ return livros.get(i); } // pesquisar por título else if(livros.get(i).getTitulo().contains(pesquisaLivro)){ return livros.get(i); } } return livro; } } E aqui está o código para a classe principal Estudos, no arquivo Estudos.java: package estudos; public class Estudos { public static void main(String[] args) { // vamos criar um novo objeto da classe Biblioteca Biblioteca b = new Biblioteca("Biblioteca Programação e Artes"); // mostra o menu da biblioteca b.exibirMenu(); } } |
AutoCAD ::: Dicas & Truques ::: Configurações da Área de Desenho |
Como definir os limites da área de desenho do AutoCAD usando o comando LIMITSQuantidade de visualizações: 995 vezes |
Quando estamos criando um novo desenho no AutoCAD, muitas vezes usando os arquivos de template acad.dwt (medidas imperiais) ou acadiso.dwt (medidas métricas), nos deparamos com uma área de desenho gigantesca, com medidas enormes. Assim, é sempre uma boa idéia delimitarmos a área de desenho, e isso é feito por meio do comando LIMITS. Este comando, quando acionado, nos pede duas coordenadas: Lower Left e Upper Right. Veja a figura: ![]() Dessa forma, Lower Left define os limites para o canto esquerdo inferior e Upper Right define os limites para o canto superior direito. Quando acionamos o comando LIMITS (ligado: ON), não conseguimos sair desses limites, o que pode ser uma comodidade, pois podemos nos concentrar em pequenos porções de um desenho de grandes proporções. Vamos então aprender a usar o comando LIMITS do AutoCAD? Comece criando um novo desenho (usando ou não os templates mencionados acima) e digite os comandos a seguir: LIMITS [Enter] Specify lower left corner or [ON/OFF] <0.0000,0.0000>: 0,0 Specify upper right corner <420.0000,297.0000>: 100,80 Tenha a certeza de inserir as coordenadas separadas por vírgulas e acionar a opção ON para ativar os limites. No final, digite o comando ZOOM ALL para aproximar a área de desenho dentro dos limites recém-definidos. Agora, sempre que digitarmos coordenadas fora desses limites, o AutoCAD nos avisará que os valores são inválidos e os rejeitará. Para desligar os limites, basta chamar LIMITS novamente e informar o valor OFF. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que recebe uma String e retorna a quantidade de letras maiúsculas encontradasQuantidade de visualizações: 5935 vezes |
Pergunta/Tarefa: Escreva um método recursivo que recebe uma palavra ou frase e retorna a quantidade de caracteres (letras) maiúsculos. Seu método deverá possuir a seguinte assinatura: public static int contarMaiusculas(String frase){ // sua implementação aqui } Sua saída deverá ser parecida com: Digite uma palavra ou frase: Arquivo de Códigos A palavra ou frase contém 2 letras maiúsculas Veja a resolução comentada deste exercício usando Java console: Observação importante: Este código criará uma cadeia de chamadas recursivas. Cada chamada ao método contarMaiusculas() receberá uma cópia menor da palavra ou frase fornecida. Quando a última chamada recursiva do método receber uma string vazia, a cadeia começa a retornar. Note que os valores acumulados nas várias chamadas ao método vão sendo acumulados na variável quantidade. package exercicio; import java.util.Scanner; public class Exercicio { public static void main(String[] args) { // cria um novo objeto da classe Scanner Scanner entrada = new Scanner(System.in); // solicita uma palavra ou frase ao usuário System.out.print("Digite uma palavra ou frase: "); // lê a palavra ou frase String frase = entrada.nextLine(); int quantMaiusculas = contarMaiusculas(frase); System.out.println("A palavra ou frase contém " + quantMaiusculas + " letras maiúsculas"); } // método recursivo que recebe uma palavra ou frase e retorna // a quantidade de letras maiúsculas public static int contarMaiusculas(String frase){ /* Este código criará uma cadeia de chamadas recursivas. Cada * chamada ao método contarMaiusculas() receberá uma cópia menor * da palavra ou frase fornecida. Quando a última chamada recursiva do * método receber uma string vazia, a cadeia começa a retornar. Note * que os valores acumulados nas várias chamadas ao método vão sendo * acumulados na variável quantidade */ int quantidade = 0; // o tamanho da string é maior que 0? if(frase.length() > 0){ if(Character.isUpperCase(frase.charAt(0))){ quantidade = 1 + contarMaiusculas(frase.substring(1)); } else{ quantidade = contarMaiusculas(frase.substring(1)); } } return quantidade; } } |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como pesquisar uma substring em uma string em Ruby usando o método index() da classe StringQuantidade de visualizações: 7431 vezes |
Este exemplo mostra como usar o método index() da classe String da linguagem Ruby para testar a existência de uma substring em uma string. Se a substring pesquisada não for encontrada na string, o valor nil é retornado. Veja: # declara e inicializa uma variável string frase = "Gosto muito de Ruby" substring = "Ruby" # vamos verificar se a substring está contida # na string if frase.index(substring) != nil puts("A substring está contida na string") else puts("A substring NÃO está contida na string") end Ao executar este código Ruby nós teremos o seguinte resultado: A substring está contida na string |
Nossas 20 dicas & truques de programação mais populares |
VB.NET - Como comparar strings em VB.NET usando o método Equals() da classe String do .NET Framework Delphi - Como obter a quantidade de caracteres em uma palavra ou texto usando a função Length() do Delphi |
Você também poderá gostar das dicas e truques de programação abaixo |
React.js - Aprenda a desenvolver aplicações React diretamente no HTML, sem usar a ferramenta create-react-app VB.NET - Como retornar a versão do .NET a partir de seus códigos VB.NET usando Environment.Version.ToString() Java - Exercício Resolvido de Java - Usando um laço for para contar de 0 até 10 e somar todos os valores C++ - C++ Windows API GUI - Como criar sua primeira aplicação de interface gráfica usando C++ e WinAPI |
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 |