Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Strings e Caracteres

Escreva um programa Java para encontrar o primeiro caractere não repetido em uma string - Versão usando laços - Desafio de Programação Resolvido em Java

Quantidade de visualizações: 645 vezes
Pergunta/Tarefa:

Escreva um programa Java que solicita ao usuário uma palavra, frase ou texto e mostra o primeiro caractere que não se repete na string informada. Sua implementação deverá usar somente laços, ou seja, não poderá usar nenhuma classe já pronta da linguagem Java, exceto os métodos length() e charAt da classe String.

Sua saída deverá ser parecida com:

Informe uma palavra, frase ou texto: Programar em PHP e Python
A string informada foi: Programar em PHP e Python
O primeiro caractere não repetido é: g
Resposta/Solução:

Veja a resolução comentada deste exercício em Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package exercicio;

import java.util.Scanner;
 
public class Exercicio {
  public static void main(String[] args) {
    // vamos fazer a leitura usando a classe Scanner
    Scanner entrada = new Scanner(System.in);
    
    // vamos pedir para o usuário informar uma string
    System.out.print("Informe uma palavra, frase ou texto: ");
    String string = entrada.nextLine();
    
    // vamos mostrar a string informada
    System.out.println("A string informada foi: " + string);
    
    // vamos percorrer todos os caracteres da string
    for(int i = 0; i < string.length(); i++){
      // esse caractere é único na string?
      boolean unico = true;
   
      // usamos um laço interno para varrer todos os caracetres da
      // string novamente
      for(int j = 0; j < string.length(); j++){
        // se i for diferente de j e os caracteres nos índices i e j
        // forem iguais
        if (i != j && string.charAt(i) == string.charAt(j)) {
          unico = false; // não é único
          break; // sai do laço interno
        }
      }
  
      // encontramos um caractere único
      if(unico){
        System.out.println("O primeiro caractere não repetido é: " 
          + string.charAt(i));
        break; // sai do laço externo
      }
    }
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Fundamentos da Linguagem ::: Comentários

Java para iniciantes - Como inserir comentários em seus códigos Java

Quantidade de visualizações: 13331 vezes
Comentários em Java, assim como em outras linguagens, são ignorados pelo compilador. Em Java, podemos usar dois estilos de comentários:

1) Comentário de uma única linha:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// obtém o resultado do cálculo
int res = 4 + 5; // aqui também pode

2) Comentários de múltiplas linhas:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

/*
 Este exemplo mostra como verificar se
 um número é par ou ímpar.  
*/



Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como obter a média dos valores dos elementos de um vetor de inteiros na linguagem Java

Quantidade de visualizações: 16980 vezes
Nesta dica mostrarei como obter a média dos valores dos elementos de um array (vetor) de ints. A média que vamos obter é aritmética, ou seja, somamos todos os valores e dividimos pela quantidade de valores no vetor.

Veja o código completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    int[] valores = new int[5];
  
    // inicializa os elementos do vetor
    valores[0] = 23;
    valores[1] = 65;
    valores[2] = 2;
    valores[3] = 87;
    valores[4] = 34;
     
    // obtém a média
    double media = media(valores);
     
    System.out.println("A media dos valores é: " + media);
   
    System.exit(0);
  }
 
  // método que recebe um vetor de ints e retorna a média
  // dos valores de seus elementos
  public static double media(int[] a){
    double total = 0.0;
    for(int i = 0; i < a.length; i++){
      total += a[i];  
    }
     
    return (total / a.length);
  }
}

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

A media dos valores é: 42.2


Java ::: Dicas & Truques ::: Threads

Threads em Java - Como definir as prioridades das threads Java

Quantidade de visualizações: 12412 vezes
Quando estamos trabalhando com threads em Java, precisamos estar cientes de que cada thread possui uma prioridade de execução. É por meio da prioridade de cada uma que o gerenciador de threads decidirá qual thread deverá ser executada primeiro.

Por padrão, todas as threads possuem prioridade NORM_PRIORITY. Esta é uma constante que possui o valor 5 e está declarada na classe Thread. Além disso, cada thread herda automaticamente a prioridade da thread que a criou.

As constantes MAX_PRIORITY (prioridade máxima), MIN_PRIORITY (prioridade mínima) e NORM_PRIORITY (prioridade normal) são usadas para definir as prioridades das threads Java. Veja um exemplo no qual temos duas threads. A primeira possui a prioridade máxima enquanto a segunda possui a prioridade mínima:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// criamos uma classe que servirá como thread
class MinhaThread extends Thread{
  private String nome;  

  public MinhaThread(String nome){
    this.nome = nome;
  }   

  public void run(){
    for(int i = 1; i <= 20; i++){
      System.out.println(nome + ": " + i);
    }
  }
}

public class Estudos{
  public static void main(String[] args){
    // vamos criar duas threads
    MinhaThread t1 = new MinhaThread("Thread 1");
    t1.setPriority(Thread.MAX_PRIORITY); // prioridade máxima
    t1.start();    

    MinhaThread t2 = new MinhaThread("Thread 2");
    t2.setPriority(Thread.MIN_PRIORITY); // prioridade mínima
    t2.start();
  }
}

Execute este exemplo e veja como a segunda thread só é executada quando a primeira finaliza. Remova as linhas que definem a prioridade e note como o tempo de cada thread é novamente fracionado. É importante ter em mente que aqui estamos falando de um ambiente de processador único. Em ambientes de múltiplos processadores o comportamento pode ser diferente do abordado na dica.

Não devemos confiar em prioridades de threads quando o objetivo é aguardar a finalização de uma thread e só então permitir o processamento das instruções contidas no método run() de outra thread. Para estes casos o recomendável é usar alguma forma para sinalizar as demais threads de que a thread atual concluiu sua tarefa.


Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

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



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