Pesquisar neste blog

Mostrando postagens com marcador Java. Mostrar todas as postagens
Mostrando postagens com marcador Java. Mostrar todas as postagens

20/12/2019

HashSet em java

package conceito;
import java.util.HashSet;
import java.util.Set;

public class Main1 {

    public static void main(String[] args) {
        // TODO code application logic here
        Set<String> lista = new HashSet<String>();
        lista.add("a");
        lista.add("a");//só vai adicionar elementos não repetidos
        lista.add("b");
        lista.add("c");
        lista.add("d");
        lista.add("d");só vai adicionar elementos não repetidos
       
        for(String s : lista){
            System.out.println(lista);
        }
    }
   
}
Saída gerada

















13/12/2019

PostegreSQL / PGAdmin no Java

O objetivo desta atividade é a modelagem do banco de dados e o desenvolvimento de um sistema para controle e gerenciamento de torneios de tênis de mesa. Um torneio dever ter um nome, uma data de início/fim e o endereço onde será realizado, além de dados de contato do administrador do torneio (e-mail e telefone). Um torneio é composto por diversos Eventos, que por sua vez podem filtrar os participantes com base em diversos critérios:


  • a. individual ou duplas; 
  • b. sexo: masculino, feminino ou sem restrição de sexo; 
  • c. por idade: Rating (baseado na data de nascimento do jogador) define um intervalo de idade permitido neste evento; 


  • d. pelo nível de jogo: Ranking (pontuação acumulada do jogador que define a qualidade do seu jogo) onde será definido um intervalo pelo qual o participante poderá disputar. Esses critérios podem ser cumulativos ou não, ou seja, pode haver eventos individuais com restrição de ranking mas sem restrição de sexo e rating, da mesma forma que pode ter evento de duplas com restrição de sexo e rating mas sem restrição de ranking. No Evento deve ser possível ainda definir o modelo de disputa que poderá variar entre: disputa em grupos GR, eliminação simples ES ou uma combinação entre grupos e eliminação simples. Deve ser permitida a definição do tamanho dos grupos e a formatação das chaves de eliminação quando, houverem não houverem quantidade suficiente de participantes para a formatação dos grupos de forma homogênea (grupos de 3, 4 ou 5 jogadores) ou para a definição das chaves de mata mata (ES) quando a quantidade de jogadores não for múltiplo de 2. Deve ainda ser permitido ao sistema realizar a impressão dos grupos e chaves de eliminação simples em formato impresso e digital. Por fim deve ser possível fazer o controle financeiro das inscrições dos jogadores nos Eventos dos Torneios. As informações acima descritas servem apenas para dar um norte inicial aos trabalhos, segue abaixo mais links de informações para melhor entendimento do objeto a ser analisado, que pode se deve ser ampliado, conforme maior maturidade no ambiente de negócio do cliente.

















Resolução:

































Informações da caixa de diálogo








Informações incluídas







































Simulando jogo






































Dados incluídos no Banco de Dados







































Clique aqui para fazer o download do arquivo feito em Java e no PostegreSQL

Pilha em Java (Balanceamento)


/*ESCREVA UM PROGRAMA PARA VERIFICAR SE UMA EXPRESSAO MATEMATICA
TEM OS PARENTESES AGRUPADOS DE FORMA CORRETA ISTO É
1 - SE O NUMERO DE PARENTESES A ESQUERDA E A DIREITA SAO IGUAIS E
2 - SE TODO PARENTESE ABERTO É SEGUIDO POSTERIORMENTE POR UM FECHAMENTO
DE PARENTESE

 */
package hierarquiaMatematica;

import java.util.Stack;
/** EX: 06
 * A + B [D + C)
 * @author HENRIQUE
 */
public class ExpressaoMat {
   
    final static String ABRE = "([{";
    final static String FECHA = ")]}";
   
    public static boolean verificaSimbolos(String expressao){
        boolean balanceado = true;
        Stack<Character> pilha = new Stack<Character>();

        int index = 0;
        char simbolo, topo;
       
        while(index < expressao.length()){
            simbolo = expressao.charAt(index);
           
            if(ABRE.indexOf(simbolo)> -1){
                pilha.push(simbolo);
            }else if(FECHA.indexOf(simbolo)> -1){
                if(pilha.isEmpty()){
                    return false;
                }else{
                    topo = pilha.pop();
                    if(ABRE.indexOf(topo) != FECHA.indexOf(simbolo)){
                        return false;
                    }
                }
            }index++;
        }
        return true;
    }
   
    public static void main(String[] args) {
       
        imprimeResultado("A + B");
        imprimeResultado("A + B + (C - D)");
        imprimeResultado("{[()]{[](){()}");
        imprimeResultado("{[(]}[]()[()}");//desbalanceado
        imprimeResultado("A + B + C - D");//OK
    }
    public static void imprimeResultado(String expressao){
        System.out.println(expressao+" está balanceado ? "+verificaSimbolos(expressao));
    }
}


15/11/2019

Banco de Dados em Java 2 / Incluir

Inserir dados no PostreSQL usando Java

package apps;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
 *
 * @author HENRIQUE
 */
public class FabricaConexao {
    private static final String URL = "jdbc:postgresql://localhost:5432/produto";
    private static final String DRIVE = "org.postgresql.Driver";
    private static final String USER = "postgres";
    private static final String PASS = "123";
 
    public static Connection obterConexao(){
        Connection conexao = null;
     
        try{
            Class.forName(DRIVE);
            conexao = DriverManager.getConnection(URL, USER, PASS);
        }catch (ClassNotFoundException cnf){
            System.out.println("Driver não encontrado - "+cnf.getMessage());
        }catch (SQLException sqle){
            System.out.println("Erro ao conectar no banco - "+sqle.getMessage());
        }
        return conexao;
     
    }
 
}
___________________ / / _____________________

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package apps;
import java.sql.Connection;
import java.sql.SQLException;
/**
 *
 * @author HENRIQUE
 */
public class TesteFabricaConexao {
    public static void main(String[] args) {
        Connection conexao;
        try{
            conexao = FabricaConexao.obterConexao();
            System.out.println("Conexao estabelecida");
            conexao.close();
            System.out.println("Conexão encerrada");
        }catch (SQLException sqle){
            System.out.println("Conexão não estabelecida - "+sqle.getMessage());
        }
    }
}
__________________ / / _____________________

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package apps;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
/**
 *
 * @author HENRIQUE
 */
public class Incluir2 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Connection conexao = FabricaConexao.obterConexao();
        PreparedStatement comando = null;
        String nome = JOptionPane.showInputDialog("Forneça o nome do grupo de produto");
        float promocao = Float.parseFloat(JOptionPane.showInputDialog("Forneça o percentual de promoção do grupo: "));
        float margem = Float.parseFloat(JOptionPane.showInputDialog("Forneça o percentual da margem de lucro do produto: "));
        String sql = "INSERT INTO grupoproduto (nome, promocao, margemlucro ) VALUES";
        sql += "("+nome+", "+promocao+", "+margem+" )";
        
        try {
            comando = conexao.prepareStatement("INSERT INTO grupoproduto (nome, promocao, margemlucro ) VALUES (?, ?, ?)");
            comando.setString(1, nome);
            comando.setFloat(2, promocao);
            comando.setFloat(3, margem);
            comando.executeUpdate();
            System.out.println("Inclusao realizada com sucesso");
        }catch (SQLException ex){
            System.out.println("Erro ao incluir grupo de produto"+ex.toString());
        }finally {
            try{
                comando.close();
                conexao.close();
            }catch (SQLException ex){
                System.out.println("Erro ao desconectar "+ex.toString());
            }
        }
        
    }
    
}
__________________ / / ____________________









































































Executando o algoritmo























O barbeiro sonolento























  •  Descrição do problema


  1.  A analogia de uma barbearia com um barbeiro.
  •  A barbearia possui
  1.  Uma cadeira para corte de cabelo
  2.  Uma sala de espera com um número determinado de cadeiras
  •  Quando o barbeiro finaliza o corte de cabelo de um cliente
  1.  Ele libera o cliente e vai até a sala de espera para ver se há algum cliente esperando
  2.  Se há algum cliente esperando, ele trás consigo um dos clientes corta o seu cabelo
  3. Se não há clientes esperando então ele volta para a cadeira de corte para dormir


  • Quando um cliente chega à barbeariaO cliente olha o que o barbeiro está fazendo.


  1. Se o barbeiro estiver dormindo, ele o acorda e senta na cadeira.
  2. Se o barbeiro estiver trabalhando então o cliente vai para a sala de espera
  3. Se houver uma cadeira livre na sala de espera então ele senta e aguarda sua vez
  4. Se não houver cadeira livre na sala de espera então o cliente vai embora.


Alunos: Luís Fernando, Henrique Souza, Luana Novais e Eberty Miranda

Créditos para: Luís Fernando autor do algoritmo

Clique aqui para fazer o download do arquivo feito no Java

13/11/2019

Banco de Dados com Java 1 / Conexão

Conexão com o Banco de Dados no Postegres / PgAdmin





















package apps;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao1 {

    public static void main(String[] args) {
        // TODO code application logic here
        Connection conexao;
        String url = "jdbc:postgresql://localhost:5432/produto";
        String usr = "postgres", pass = "aluno123";
        
        try{
            Class.forName("org.postgresql.Driver");//site do driver no postgre
            conexao = DriverManager.getConnection(url, usr, pass);
            System.out.println("Conexão estabelecidada");
            conexao.close();
            System.out.println("Conexão encerrada");
        } catch (ClassNotFoundException cnf){
            System.out.println("Classe do driver não encontrado - "+cnf.getMessage());
        }catch (SQLException sqle){
            System.out.println("Conexão não estabelecidade - "+sqle.getMessage());
        }
    }
    
}

____________________ / / ___________________

package apps;
import java.sql.*;
import org.postgresql.Driver;

public class Conexao2 {

    public static void main(String[] args) {
        // TODO code application logic here
        Connection conexao;
        String url = "jdbc:postgresql://localhost:5432/produto";
        String usr = "postgres", pass = "aluno123";
        
        try{
            DriverManager.registerDriver(new Driver());
            conexao = DriverManager.getConnection(url, usr, pass);
            System.out.println("Conexão estabelecida");
            conexao.close();
            System.out.println("Conexão fechada");
        }catch (SQLException sqle) {
            System.out.println("Conexão não estabelecida - "+sqle.getMessage());
        }
    }
    
}






























































































Saída gerada












Clique aqui para fazer o download do material completo


Palavras chave:

Persistência de Dados com a API JDBC do Java
Data Persistence with the Java JDBC API
Persistencia de datos con la API JDBC de Java
जावा जेडीबीसी API सह डेटा पर्सिस्टन्स
Java JDBC APIを使用したデータの永続性
Adatperzisztencia a Java JDBC API-val
התמדה בנתונים עם ממשק ה- API של JDBC Java
Persistência de Dados com e API JDBC do Java
Persistência de Dados com iyo API JDBC waxay sameeyaan Java
Persistência de Dados com a API JDBC do Java
Dados com ve API JDBC’nin Java kullanması
Persistência de Dados com og API JDBC gør Java

Herança em Java

Exemplo de herança em java

package pessoa;
public class Aluno extends Pessoa{
 
    private String curso;
    private double[] notas;

    public Aluno() {
        super();
    }

    public Aluno(String nome, String endereco, String telefone, String curso) {
        super(nome, endereco, telefone);
        this.curso = curso;
        this.notas = notas;
    }

    public boolean verificarAprovado(){
        return true;
    }
    public void metodoQualquer(){
        super.setCpf(1234567-99);
        this.setCpf(00000000-99);
    }
 
    public String getCurso() {
        return curso;
    }
    public double[] getNotas() {
        return notas;
    }

    public void setCurso(String curso) {
        this.curso = curso;
    }
    public void setNotas(double[] notas) {
        this.notas = notas;
    }
}

___________ / / _____________

package pessoa;
public class Pessoa {
 
    private String nome, endereco, telefone;
    private String telefoneCelular;
    int cpf;

    public Pessoa(){}
 
    public Pessoa(String nome, String endereco, String telefone) {
        this.nome = nome;
        this.endereco = endereco;
        this.telefone = telefone;
    }
 
 
 
    public String getNome() {
        return nome;
    }
    public String getEndereco() {
        return endereco;
    }
    public String getTelefone() {
        return telefone;
    }
    public String getTelefoneCelular() {
        return telefoneCelular;
    }
    public int getCpf() {
        return cpf;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }
    public void setTelefoneCelular(String telefoneCelular) {
        this.telefoneCelular = telefoneCelular;
    }
    public void setCpf(int cpf) {
        this.cpf = cpf;
    }
 
    public String obterEtuiqueta(){
        return endereco;
    }
 
}
___________ / / __________

package pessoa;
public class Professor extends Pessoa{
    
    private double salario;
    private String nomeCurso;

    public double getSalario() {
        return salario;
    }
    public String getNomeCurso() {
        return nomeCurso;
    }

    public void setSalario(double salario) {
        this.salario = salario;
    }
    public void setNomeCurso(String nomeCurso) {
        this.nomeCurso = nomeCurso;
    }

    public double calcularSalarioLiquido(){
        return 0;
    }
    
    public String obterEtiquetaEndereco(){
        String s = "Endereço do professor: ";
        s += super.getEndereco();
        //ou s += this.getEndereco();
        return s;
    }
}
_____________ / / ______________

package execucao;
import pessoa.Pessoa;
import pessoa.Aluno;
import pessoa.Professor;
public class Aplicacao1 {

    public static void main(String[] args) {
        
        Aluno aluno = new Aluno();
        Pessoa pessoa = new Pessoa();
        Professor prof = new Professor();
        
        pessoa.setEndereco("Rua 1 quadra 2");
        aluno.setEndereco("Rua 2 quadra 3");
        prof.setEndereco("Rua 3 quadra 4");
        
        System.out.println(pessoa.obterEtuiqueta());
        System.out.println(aluno.obterEtuiqueta());
        System.out.println(prof.obterEtiquetaEndereco());
        
        aluno.setCpf(8888888-99);
        System.out.println(aluno.getCpf());
        
    }
    
}

06/11/2019

Atividade LP2

1. Qual a justificativa/vantagem do uso de enumerações, ao invés de usar valores literais ou constantes do tipo String ou Inteiro ?

- define um domínio de valores
- define um tipo em tempo de compilação
- toda manipulação pelo enum é validada pelo compilador
- diminui a chance do compilador parar
- legitimidade 

2. Qual o papel das classes VO’s na implementação fornecida ?

- ENTIDADE: endereco, Aluno, Enuns =: abstracao de classes / X
- DAO: Conexao => reuni o papel de banco de dados / ABSTRACAO DE PERSISTENCIA / quem ficar isolado nesta expressão encapsula os campos
- EXCEÇÕES => Persisntencia, Negocio / X - não reuni um conjunto de ações 
- NEGOCIO => Validação de dados / ABSTRACAO de mooder 
- EXECUCAO: Principal- Visao/Intidade=> Faz o papel de interação com o usuário / fazer a interface com o usurário para fornecer dados


3. Caso não seja usado VO, como seriam passados valores entre as classes da visão, negócio e persistência ?

- Por Lista de parâmetros

4. Que tipo de relação existe entre o VO de Aluno e Endereço ?

- Agregação de endereçosVO

5. O que justifica o uso do EnderecoVO na implementação, haja visto que no banco de dados existe apenas uma tabela (Aluno) ? 

- Complexidade nas classes
- Fazer um registro com chave primaria que referencia 2 ou + tabelas

6. Aponte exemplos de uso da classe PersistenciaException. 



7. Qual o benefício de criar uma classe para tratar a conexão com o banco de dados, como a classe ConexaoBD ? 

- é uma classe de apoio utilitária
- encapsulamento de um local da conexão
- diminui o uso de código com repetição

8. Qual o papel/responsabilidade da classe DAO ?

- DAO reunir todos

 9. Qual o papel/responsabilidade da classe AlunoNegocio ? 

- Consistência da regra de negocio
- envolve validação de dados

10. Caso tenha que inserir uma nova entidade/conceito na aplicação, quais seriam as classes a serem implementadas ?

- Construir um professorDAO
- AlunoDAO e assim sucessivamente
- AlunoNegocio 

Strings em java


/**
 *
 * @author HENRIQUE
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args){
        // TODO code application logic here
        String var = "variavel / ? : + ;: letras", aux = "";
     
        System.out.println("--- "+var+" ---");
        LinkedList lista = new LinkedList();
     
        System.out.println("Posicao do[/] => "+var.indexOf("/"));
        System.out.println("Termina com [letras] => "+var.endsWith("letras"));
        System.out.println("Começa com [variavel] => "+var.startsWith("variavel"));
        System.out.println("Se a posição 9 == [/] => "+var.startsWith("/", 9));
        System.out.println("");
        for(byte s : var.getBytes()){
            System.out.println("byte: "+s);
        }
        System.out.println("\nCódigo da String [var] => "+var.hashCode());
        System.out.println("Convertendo para String maíuslas => "+var.toUpperCase());
        System.out.println("Trunca a na posição [4] => "+var.substring(4));
        System.out.println("Trunca em [2, 9] => "+var.substring(2, 9));
     
        System.out.println("\n");
        String[] auxSplit = var.split(":");
        for(String s : auxSplit){
            System.out.println(s);
        }
     
        System.out.println();
        String valor = "TESTE -java - Engenharia - Comp";
        String[] auxS = valor.split("-",3);//limite de 3
        for(String a : auxS){
            System.out.println(a);
        }
     
        String result = String.format("Hoje nós processamos [ %s ] transções", var);
        System.out.println(""+result);
     
        result = String.format("10 / 3 = %.2f", 10.0 / 3.0);
        System.out.println(result);
     
        char d[] = {'a','b','c'};
        String str = new String(d);
        System.out.println(str);
     
        String test = "TESTE VARIAVEL - java";
        System.out.println(test.charAt(0));
    }
 
}

04/11/2019

Buscar elementos iguais em java

import javax.swing.JOptionPane;

/**
 *
 * @author HENRIQUE
 */
public class Lista {
    
    private Object[] objeto;
    private int tamanho;
    
    public Lista(){
    }
    public Lista(int capacidade){
        this.objeto = new Object[capacidade];
        this.tamanho = 0;
    }
    public boolean adicionar(Object elemento){
        if(tamanho < objeto.length){
            objeto[tamanho] = elemento;
            tamanho++;
            return true;
        }return false;
    }
    
    public int buscarElemento(Object elemento){
        for(int i = 0; i < this.tamanho; i++){
            if(this.objeto[i].equals(elemento)){
                return i;
            }
        }return -1;
    }
    
    public Object buscarElem(Object elemento){
        for(int i = 0; i < this.tamanho; i++){
            if(this.objeto[i].equals(elemento)){
                return elemento;
            }
        }return false;
    }
    
    public void erro(String elemento){
        JOptionPane.showMessageDialog(null,"ERRO SEMÂNTICO !", "inteiro "+elemento,JOptionPane.ERROR_MESSAGE);
        throw new IllegalArgumentException("Variável duplicata");
    }
       
    public boolean addIguais(Object elemento){
        if((tamanho < objeto.length)&& (this.contem(elemento)== false)){
            objeto[tamanho] = elemento;
            tamanho++;
            return true;
        }
        System.out.println(elemento+" => Variáveis iguais");
        this.erro((String) elemento);
        return false;
    }
    
    public boolean contem(Object elemento){
        return buscarElemento(elemento) >= 0;
    }
    public int tamanho(){
        return this.tamanho;
    }
    
    public void removerElemento(Object elemento){//esta removendo apenas um elemento
        for(int i = 0; i < this.tamanho -1; i++){
            this.objeto[i] = this.objeto[i+1];
        }
        tamanho--;
    }
    
    public void removerElemPosicao(int posicao){
        if(!(posicao >= 0 && posicao < tamanho)){//se a posição é válida
            throw new IllegalArgumentException("\n\nPOSIÇÃO DE REMOÇÃO INVÁLIDA");
        }else{
            for(int i =0; i < this.tamanho -1; i++){
                this.objeto[i] = this.objeto[i+1];//atualiza a posicao
            }
            tamanho--;
        }
    }
    
    public String toString(){
        StringBuilder s = new StringBuilder();
        
        for(int i =0; i < this.tamanho; i++){
            s.append(this.objeto[i]);
            s.append("\n");
        }
        return s.toString();
    }
}


EXEMPLO : 

/**
 *
 * @author HENRIQUE
 */
public class Main {
    public static void main(String[] args) throws Exception {
        
        Lista listar = new Lista(1000);

        listar.addIguais("palavras");
        listar.addIguais("abacaxi");
        listar.addIguais(9);
        listar.addIguais("FRASES");
        listar.addIguais("abacaxi"); // dará um erro aqui porque já existe este elemento
    }
}

10/10/2019

Encontrar Strings em Java


package lexica;
import java.util.ArrayList;
public class Main{
    public static void main(String[] args ){
     
        ArrayList<String> al = new ArrayList<String>();
     
        al.add("Java");
        al.add("linguagem C");
        al.add("Networking");
     
        if(al.contains("Networking")){//string procurada
            System.out.println("Networking encontrado na Lista");
        }else{
            System.out.println("Não encontrado");
        }
     
        String str = "   www.Voleichut-dow+Carlin~ klk ";//nova string
        char[] s = str.toCharArray();
        boolean t = false;
        for (char c : s){
            if(str.contains("ei")== true){//se verdadeiro
                t = true;
                System.out.println("achei: ei");
                break;//para o loop, senao imprimi muitas vezes
            }
            System.out.println(c);
        }
        System.out.println("____//____");
        System.out.println(str);
        System.out.println("indexOf [lei] = "+str.indexOf("lei", 0));//lei procurada, retorna a posição inicial que se encontra
        System.out.println("substring1 [8] = "+str.substring(8));//trunca a string a partir da posição 8
        System.out.println("substring2 [2,10] = "+str.substring(2, 10));//trunca a string a partir da pos 2 até a 10
        System.out.println("substring3 subSequence[0,5] = "+str.subSequence(0, 5));//trunca .. 0 ate 5
        System.out.println("Removendo i , o: "+str.replace('i', 'o'));//remove i e o
        System.out.println("Trim   : "+str.trim());
        StringBuilder a = new StringBuilder(str);
        System.out.println("Reverso: "+a.reverse());//string invertida
    }
}
saída gerada


























Palavras chave:

contains no Java
indexOf no Java
substring no Java
subSequence no Java
trim no Java
reverse no Java

10/09/2019

Importar um arquivo txt e transferir para um ArrayList em Java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package lexica;
import java.io.*;
import java.util.ArrayList;
/**
 *
 * @author HENRIQUE
 */
public class Main1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws FileNotFoundException{
     
        FileReader arquivo = new FileReader("C:\\Users\\HENRIQUE\\Desktop\\lexico.txt");
        BufferedReader learq = new BufferedReader(arquivo);
     
        ArrayList<String> linhas = new ArrayList<>();
        ArrayList<String[]> palavras = new ArrayList<>();
        try{
            String linha = learq.readLine();
            while (linha != null){
                linhas.add(linha);
                linha = learq.readLine();
             
            }
        }catch (IOException e){
            System.out.println(e.getMessage());
        }
        for(String s : linhas){
            palavras.add(s.split(" "));//melhor para visualizar a impressão
            //palavras.add(s.split(""));//ou se preferir
        }
        for(int i= 0; i < palavras.size(); i++){
            for(int j= 0; j< palavras.get(i).length; j++){
                if(!palavras.get(i)[j].trim().isEmpty()){
                    System.out.println(palavras.get(i)[j]);
                }
            }
        }
        System.out.println("____//___");
    }
}

01/08/2019

Ler arquivo em java

Objetivo: Ler um arquivo em Linguagem Java e transferir os dados do arquivo para um vetor:


import conceito.VetorObjetos;
import java.io.IOException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Aplicacao1 {

    public static void main(String[] args) throws IOException{
             
        String nomeArquivo = null;
        String nomeArquivoCompleto = "C:\\Users\\HENRIQUE\\Documents\\texto.txt";
        nomeArquivo = nomeArquivoCompleto;

        FileInputStream fin = null;
        BufferedReader in = null;
        String linha = null;
        int qtddLinhas = 0;

        String[] contatos = new String[qtddLinhas];
        VetorObjetos vet = new VetorObjetos(qtddLinhas);
        ArrayList list = new ArrayList();
     
        try {
            fin = new FileInputStream(nomeArquivo);
            in = new BufferedReader(new InputStreamReader(fin));

            while (in.ready()) {
                linha = in.readLine();

                if (linha == null) {
                    break;
                }
                list.add(linha);//adicionando os dados na lista
                linha = linha.trim();

                if (linha.length() != 0) {
                    System.out.println(linha);//imprimindo o arquivo
                    qtddLinhas++;
                }
            }
            for(int i=0; i<qtddLinhas-1; i++){
                System.out.print(" "+list.get(i));
            }
         
            System.out.println("\nQuantidade de linhas = " + qtddLinhas);
            in.close();
        } catch (FileNotFoundException e) {
            System.out.println("Arquivo não encontrado ...");
            System.exit(1);
        }

    }
}

13/07/2019

Threads usando com Java

Crie um semáforo (sinal de trânsito) usando Threads. O semáforo deve ficar verde por x segundos, depois brevemente amarelo seguido de y segundos na cor vermelha.

Resolução:
Enun CorSemafaro
/**
 *
 * @author HENRIQUE
 */
public enum CorSemafaro {
    //VERDE, AMARELO, VERMELHO;
 
    //opcional
    VERDE(1000), AMARELO(300), VERMELHO(2000);//
    private int tempoEspera;//

    private CorSemafaro(int tempoEspera) {//
        this.tempoEspera = tempoEspera;//
    }
    public int getTempoEspera() {//
        return tempoEspera;//
    }
}

Classe ThreadSemaforo

public class ThreadSemaforo implements Runnable{
    private CorSemafaro cor;
    private boolean parar;
    private boolean corMudou;
 
    public ThreadSemaforo() {
        this.cor = CorSemafaro.VERMELHO;//inicia com vermelho
        this.parar = false;
        this.corMudou = false;
        new Thread(this).start();//executa o metodo run
    }

    @Override
    public void run() {
        while(!parar){
            try{
                /*
                switch (this.cor){
                    case VERMELHO: Thread.sleep(2000);break;
                    case AMARELO: Thread.sleep(300);break;
                    case VERDE: Thread.sleep(1000);break;
                    default:
                        break;
                */
                Thread.sleep(this.cor.getTempoEspera());//opcional
                this.mudarCor();
            }catch(InterruptedException e){
                e.printStackTrace();
            }
        }
    }
    private synchronized void mudarCor(){
        switch (this.cor){
            case VERMELHO:
                this.cor = CorSemafaro.VERDE; break;
            case AMARELO: this.cor = CorSemafaro.VERMELHO; break;
            case VERDE: this.cor = CorSemafaro.AMARELO; break;
         
            default:
                break;
        }
        this.corMudou = true;
        notify();//notifica a thread estiver esperando
    }
 
    public synchronized void esperaCorMudar(){
        while(!this.corMudou){
            try{
                wait();
            }catch (InterruptedException e){
                e.printStackTrace();
            }
        }
        this.corMudou = false;
    }
 
    public synchronized void deligarSemafaro(){
        this.parar = true;
    }
 
    public CorSemafaro getCor() {
        return cor;
    }

    public boolean isParar() {
        return parar;
    }
 
}

Classe principal

public class Aplicacao1 {
    public static void main(String[] args) {
        ThreadSemaforo semafaro = new ThreadSemaforo();
     
        for(int i= 0; i< 10; i++){
            System.out.println(semafaro.getCor());
            semafaro.esperaCorMudar();
        }
    }
}

12/07/2019

Deadlock usando Thread com Java

Crie um semáforo (sinal de trânsito) usando Threads. O semáforo deve ficar verde por x segundos, depois brevemente amarelo seguido de y segundos na cor vermelha.

Resolução:

Classe ThreadSemafaro

import com.sun.swing.internal.plaf.synth.resources.synth;
public class ThreadSemafaro implements Runnable {

private CorSemafaro cor;
private boolean parar;
private boolean corMudou;

public ThreadSemafaro(){
this.cor = CorSemafaro.VERMELHO;//iniciando com a cor vermelha

this.parar = false;
this.corMudou = false;

new Thread(this).start();
}

@Override
public void run() {

while(!parar){
try {
/*switch (this.cor) {
case VERMELHO:
Thread.sleep(2000);
break;
case AMARELO:
Thread.sleep(300);
break;
case VERDE:
Thread.sleep(1000);
break;
default:
break;
}*/
Thread.sleep(this.cor.getTempoEspera());
this.mudarCor();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

private synchronized void mudarCor(){
switch (this.cor) {
case VERMELHO:
this.cor = CorSemafaro.VERDE;
break;
case AMARELO:
this.cor = CorSemafaro.VERMELHO;
break;
case VERDE:
this.cor = CorSemafaro.AMARELO;
break;
default:
break;
}
this.corMudou = true;
notify();
}

public synchronized void esperaCorMudar(){
while(!this.corMudou){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
this.corMudou = false;
}

public synchronized void desligarSemafaro(){
this.parar = true;
}

public CorSemafaro getCor() {
return cor;
}
}

Enun CorSemaforo

public enum CorSemafaro {
    VERDE(1000), AMARELO(300), VERMELHO(2000);
 
    private int tempoEspera;
    CorSemafaro(int tempoEspera){
        this.tempoEspera = tempoEspera;
    }
    public int getTempoEspera(){
        return tempoEspera;
    }
}

Método principal

public class Principal1 {

    public static void main(String[] args) {
ThreadSemafaro semafaro = new ThreadSemafaro();

for (int i=0; i<10; i++){
            System.out.println(semafaro.getCor());
            semafaro.esperaCorMudar();
           }
semafaro.desligarSemafaro();
    }
}

29/03/2019

Nota aluno em JAVA

Faça um algoritmo em JAVA e implemente os seguintes características:
Matrícula
Nome
Nota1, Nota2, Nota3, Nota4,
mediaSemestral
notaPF
mediaFinal

O algoritmo deve ter uma classe
- o método construtor padrão
- método construtor sobrecarregado
- métodos gets e sets para os atributo
- método para calcularMediaSemestral
- método calcularMediaComPF
Desenvolver uma classe com método main que instancie um objeto da classe e realize operações com esse objeto e as notas do aluno devem ser valores entre 0 < notas < 10:

Resolução:

ClasseNotaAluno1

package notaaluno1;
import java.util.Scanner;

public class ClasseNotaAluno1 {
    Scanner leia = new Scanner(System.in);
    
    private String nome;
    private int matricula;
    private float n1, n2, n3, n4;
    private float mediaFinal, notaPF;
        
    public void Aluno(String nome, int matricula){
        System.out.println("Metodo Aluno: String nome; int matricula");
        this.nome = nome;
        this.matricula = matricula;
    }
    public float mediaSemestral(){
        mediaFinal = (n1 + n2 + n3 + n4) /4;
        System.out.print("\nMÉDIA SEMESTRAL = "+mediaFinal);
        if(mediaFinal >= 6){
            System.out.println(" Aprovado(a)");
        }else if(mediaFinal > 1 && mediaFinal < 6){
            System.out.println("  Aluno(a) de recuperação !");
            calcMediaComPF();
        }else{
            System.out.println("  Reprovado(a)");
        }
        
        return mediaFinal;
    }
    public float calcMediaComPF(){
        System.out.print("\nDigite a nota da PF: ");
        notaPF = leia.nextFloat();
        if(notaPF < 0 || notaPF > 10){
            while(notaPF < 0 || notaPF > 10){
                System.out.println("Erro ! DIGITE UMA NOTA VÁLIDA ENTRE 0 E 10");
                notaPF = leia.nextFloat();
            }
        }
        
        float notaFinal = (notaPF + mediaFinal)/2;
        if(notaFinal >= 5){
            System.out.println("Média finaL = "+notaFinal+" Aprovado(a)");
        }else{
            System.out.println("Aluno(a) "+nome+" nota final = "+notaFinal+" reprovado(a)");
        }
        return notaFinal;
    }
    public void status(){
        System.out.println("\n______Status do aluno(a)_______");
        System.out.print("Aluno(a): "+nome);
        System.out.print("\nNota1 = "+n1+"\nNota2 = "+n2+
                "\nNota3 = "+n3+"\nNota4 = "+n4);
    }
    
    public void setNome(String nome){
        this.nome = nome;
    }
    public void setN1(float n1){
        this.n1 = n1;
    }
    public void setN2(float n2){
        this.n2 = n2;
    }
    public void setN3(float n3){
        this.n3 = n3;
    }
    public void setN4(float n4){
        this.n4 = n4;
    }
    public void setMediaFinal(float mediaFinal){
        this.mediaFinal = mediaFinal;
    }
    public void setNotaPF(float notaPF){
        this.notaPF = notaPF;
    }
        
    public String getNome(){
        return nome;
    }
    public float getN1(){
        return n1;
    }
    public float getN2(){
        return n2;
    }
    public float getN3(){
        return n3;
    }
    public float getN4(){
        return n4;
    }
    public float getMediaFinal(){
        return mediaFinal;
    }
    public float getNotaPF(){
        return notaPF;
    }
    
}

Método Main

package notaaluno1;
import java.util.Scanner;

public class NotaAluno1 {

    static float nota(float notax) {
        Scanner leia = new Scanner(System.in);

        while (notax < 0 || notax > 10) {
            System.out.print("EROO ! Digite uma nota entre 0 e 10: ");
            notax = (leia.nextFloat());
        }
        return notax;
    }

    public static void main(String[] args) {
        Scanner leia = new Scanner(System.in);
        
        ClasseNotaAluno1 aluno = new ClasseNotaAluno1();

        System.out.print("Digite o nome do aluno: ");
        aluno.setNome(leia.next());
        
        System.out.print("Digite a [1°] nota do aluno(a): " + aluno.getNome() + " = ");
        float nota1 = nota(leia.nextFloat());
        aluno.setN1(nota1);
        /*ou
        aluno.setN1(nota(leia.nextFloat()));*/
        
        System.out.print("Digite a [2°] nota do aluno(a): " + aluno.getNome() + " = ");
        float nota2 = nota(leia.nextFloat());
        aluno.setN2(nota2);
        
        System.out.print("Digite a [3°] nota do aluno(a): " + aluno.getNome() + " = ");
        float nota3 = nota(leia.nextFloat());
        aluno.setN3(nota3);

        System.out.print("Digite a [4°] nota do aluno(a): " + aluno.getNome() + " = ");
        float nota4 = nota(leia.nextFloat());
        aluno.setN4(nota4);


        aluno.status();
        aluno.mediaSemestral();
        
        
        System.out.println("\n");
    }
}

26/01/2019

Matriz com números aleatórios em Java


/*Faça um algoritmo de uma matriz 4x4 com valores aleatórios entre 0 e 100. Apos isso determine o maior número da matriz e a sua posição.*/

import java.util.Random;

public class Main{
public static void main(String[] args){
    int[][] numAleatorio = new int [4][4];
    Random numeroRandom = new Random();
 
    for (int i = 0; i < numAleatorio.length; i++){
        for (int j = 0; j < numAleatorio[i].length; j++){
            numAleatorio[i][j] = numeroRandom.nextInt(100);//gera numero aleatorio de 0 a 100
        }
    }
 
    //int maior = Integer.MIN_VALUE;
int maior = 0, linha = 0, col = 0;

for (int i = 0; i < numAleatorio.length; i++){
    for (int j = 0; j < numAleatorio[i].length; j++){
        if(numAleatorio[i][j] > maior){
            maior = numAleatorio[i][j];
            linha = i;
            col = j;
        }
    }
}

System.out.print("\t\tMatriz\n");
for (int i = 0; i < numAleatorio.length; i++){
    for (int j = 0; j < numAleatorio[i].length; j++){
        System.out.print("\t"+numAleatorio[i][j]+" ");
    }
    System.out.println();
}
System.out.println("\nMaior valor = "+maior);
System.out.println("Linha: "+linha);
System.out.println("Coluna:"+col);
}
}

20/01/2019

Desenhando um smille em java

Classe DesenhoComponente

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

public class DesenhoComponente extends JPanel{
   public void paintComponent( Graphics g ){
   
      super.paintComponent(g);
   
      // desenhar o rosto
      g.setColor( Color.YELLOW );
      g.fillOval( 10, 10, 200, 200 );
   
      // desenhar os olhos
      g.setColor( Color.BLACK );
      g.fillOval( 55, 65, 30, 30 );
      g.fillOval( 135, 65, 30, 30 );
   
      // desenhar a boca
      g.fillOval( 50, 110, 120, 60 );
   
      // "retocar" a boca em um sorriso
      g.setColor( Color.YELLOW );
      g.fillRect( 50, 110, 120, 30 );
      g.fillOval( 50, 120, 120, 40 );
   }
}

__________ / / ________
Código fonte principal

import javax.swing.JFrame;

public class DrawSmiley
{
   public static void main( String[] args )
   {
      DesenhoComponente painel = new DesenhoComponente();   
      JFrame aplicacao = new JFrame();
      aplicacao.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   
      aplicacao.add( painel );
      aplicacao.setSize( 230, 250 );   
      aplicacao.setVisible( true );
   }
}

Impressão do smille



















Palavras chave:

Drawing a smille in java
Dibujo de un smille en java
Teken 'n glimlag in java
رسم smille في جافا
জাভা একটি স্মাইল অঙ্কন
Pagguhit ng isang smille sa java
Teikna broskalla í Java
Smink rajzolása a java-ban
Ngirim smile ing jawa
Parando Smille in Java
Parando Smille in Java

21/12/2018

Switch case com letra maiúscula ou minuscula

/*Faca um algoritmo que pergunte em que turno você estuda e imprima
o horário que ele estuda. O algoritmo deve deve atender o requisito
dos caracteres tanto para maiúsculo quanto para minusculo, ambos devem
atender o solicitado.*/


import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
System.out.print("Digite o turno que você estuda: ");
String turno = leia.nextLine();//lE UMA LINHA INTEIRA

switch(turno){
    case "m":
    case "M": System.out.println("Matutino");break;
    case "v":
    case "V": System.out.println("Vespertino");break;
    case "n":
    case "N": System.out.println("Noturno");break;
     
    default: System.out.println("Valor inválido:");
}
}
}