A princípio, estudo Java para trabalhar nos projetos de sistemas embarcados da CAS Tecnologia.
Udemy: Java 2020 COMPLETO: Do Zero ao Profissional + Projetos!
Fundamentos Java, Orientação a Objeto, Programação Funcional, MySQL, MongoDB, Spring Boot, JavaFX, JPA, Hibernate e mais.
Lecionado por Leonardo Moura Leitao | Arquiteto de Software
535 aulas
77 horas
- Algoritmo e Estrutura de Dados
- Fundamentos da Linguagem Java
- Estruturas de Controle
- Classes, Objetos, Métodos
- Orientação a Objeto
- Encapsulamento, Herança, Polimorfismo e Abstração
- Lambdas
- Stream API
- Tratamento de Exceções
- JavaFX
- Banco de Dados Relacional
- Bando de Dados NÃO Relacional (NoSQL)
- JPA (Hibernate)
- Spring Boot
Teoria
- Seção 01: Introdução;
- Seção 02: Configuração do Ambiente;
- Seção 03: Fundamentos;
- Secão 04: Estrutura de Controle;
- Seção 05: Classes e Métodos;
- Seção 06: Arrays e Collections;
- Seção 07: Orientação a Objetos;
- Secão 08: Lambdas;
- Seção 09: Stream API;
- Seção 10: Tratamento de Erros;
- Seção 11: Projeto - Campo Minado (+JUnit 5);
- Secão 12: Generics;
- Seção 13: Java Desktop com Swing;
- Seção 14: Banco de Dados Relacional;
- Seção 15: Banco de Dados com JDBC;
- Seção 16: Java Persistence API (JPA);
- Seção 17: Modularidade em Java;
- Seção 18: JavaFX;
- Seção 19: Conceitos sobre Web;
- Secão 20: Spring Boot;
- Seção 21: Banco de Dados Não Relacional (NoSQL);
- Seção 22: Conclusão;
Projetos
W3Schools - Teoria
Java Tutorial
- Java Syntax;
- Java Comments;
- Java Variables;
- Java Data Types;
- Java Type Casting;
- Java Operators;
- Java Strings;
- Java Math;
- Java Booleans;
- Java If ... Else;
- Java Switch;
- Java While Loop;
- Java For Loop;
- Java Break / Continue;
- Java Arrays;
Java Methods
- Java Methods;
- Java Method Parameters;
- Java Method Overloading;
- Java Scope;
- Java Recursion;
Java Classes
- Java OOP;
- Java Classes/Objects;
- Java Class Attributes;
- Java Class Methods;
- Java Constructors;
- Java Modifiers;
- Java Encapsulation;
- Java Packages / API;
- Java Inheritance;
- Java Polymorphism;
- Java Inner Classes;
- Java Abstraction;
- Java Interface;
- Java Enums;
- Java User Input;
- Java Date;
- Java ArrayList;
- Java LinkedList;
- Java HashMap;
- Java HashSet;
- Java Iterator;
- Java Wrapper Classes;
- Java Exceptions;
- Java RegEx;
- Java Threads;
- Java Lambda;
Java File Handling
- Java Files;
- Java Create/Write Files;
- Java Read Files;
- Java Delete Files;
Java How To
- Add Two Numbers;
Java Reference
- Java Keywords;
- Java String Methods;
- Java Math Methods;
Java Examples
- Java Examples;
- Java Compiler;
- Java Exercises;
- Java Quiz;
- Java Certificate;
- Mini projeto 01: Pokedéx Reativo;
- Mini projeto 02: Interface GUI;
- Mini projeto 03: String Reverse;
- Mini projeto 04: Loop Pattern;
- Mini projeto 05: Arrow Keys;
- Mini projeto 06: Add Numbers;
- Mini projeto 07: Random Numbers;
- Mini projeto 08: Duplicate Characters;
- Mini projeto 09: Prime Numbers;
- Mini projeto 10: Palindromes;
- Mini projeto 11: Factorial with Recursion;
- Mini projeto 12: Tic Tac Toe Game;
- Mini Projeto 13: Currency Formatter Challenge by HackerRank;
- Mini Projeto 14: Fortune Cookie;
- Mini projeto 15: Encryption;
- Mini projeto 16: Fart Generator;
- Mini projeto 17: CSV File Reader;
- Mini projeto 18: Snake Game Desktop;
Veja mais: Descrição | Screenshots | GIFs | Código de exemplo
O que é uma Pokedéx?
A Pokédex, também conhecida como Poké-Agenda no Brasil (e ainda como Dexter ou Dextette, dependendo da voz masculina ou feminina do aparelho) é uma enciclopédia virtual portátil de alta tecnologia que os treinadores Pokémon transportam para registra todas as espécies diferentes de Pokémon que são encontradas durante a sua viagem como treinadores. Em geral, quando são cumpridos determinados requisitos, a capacidade pode ser aumentada permitindo que a Pokédex possa armazenar dados de outros Pokémon, que não são comuns, assim como os Pokémon de outras regiões.Descrição do projeto
Neste projeto será criada uma aplicação de Create, Read, Update e Delete usando Spring Webflux, com os dados salvos num banco MongoDB e por fim hospedado na Amazon Web Services.- Elástica;
- Orientação a mensagens;
- Responsiva;
- Resiliente;
- Java JDK 8;
- IDE IntelliJ IDEA CE;
- Maven 3;
- JUnit 5;
- Spring Reactive Web;
- Spring Data Reactive MongoDB;
- Embedded MongoDB Database;
- AWS;
Spring Webflux é um módulo no SpringBoot, com ele além de criarmos um CRUD, podemos criar uma sequência de eventos, mas isso não quer dizer que sempre devemos usar aplicações reativas, tudo depende do seu cenário e da viabilidade.
Código de exemplo
package com.hmap.pokedex;
import com.hmap.pokedex.model.Pokemon;
import com.hmap.pokedex.repository.PokedexRepository;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
import reactor.core.publisher.Flux;
@SpringBootApplication
public class PokedexApplication {
public static void main(String[] args) { SpringApplication.run(PokedexApplication.class, args); }
@Bean
CommandLineRunner init (ReactiveMongoOperations operations,PokedexRepository repository) {
return args -> {
Flux<Pokemon> pokedexFlux = Flux.just(
new Pokemon(null, "Bulbassaur", "Seed", "OverGrow", 06.09),
new Pokemon(null, "Charizard", "Fire", "Blaze", 90.05),
new Pokemon(null, "Caterpie", "Earthworm", "Shield Dust", 02.09),
new Pokemon(null, "Blastoise", "Shellfish", "Torrent", 06.09))
.flatMap(repository::save);
pokedexFlux
.thenMany(repository.findAll())
.subscribe(System.out::println);
};
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de uma Interface Gráfica do Usuário (GUI), contendo um título fixo, um botão e um texto informando a quantidade de vezes que o botão foi pressionado.Código de exemplo
public class GUI implements ActionListener {
private int explosionsCount = 0;
private JFrame guiFrame;
private JLabel explosionLabel;
private JPanel guiPanel;
public GUI() {
guiFrame = new JFrame();
JButton explosionButton = new JButton(" Clique aqui para explodir 🧨 ");
explosionButton.addActionListener(this);
explosionLabel = new JLabel("Número de explosões: 0");
guiPanel = new JPanel();
guiPanel.setBorder(BorderFactory.createEmptyBorder(30, 30, 10, 30));
guiPanel.setLayout(new GridLayout(0,1));
guiPanel.add(explosionButton);
guiPanel.add(explosionLabel);
guiFrame.add(guiPanel, BorderLayout.CENTER);
guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
guiFrame.setTitle("GUI Explosiva 🔥");
guiFrame.pack();
guiFrame.setVisible(true);
}
public static void main(String[] args) {
new GUI();
}
@Override
public void actionPerformed(ActionEvent e) {
explosionsCount++;
explosionLabel.setText("Número de explosões: " + explosionsCount);
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que inverta a ordem de cada caractere na sentença da frase, de modo que a leitura seja invertida.Código de exemplo
public class ReverseString {
public static void main(String[] args) {
final String reverseString = reverse("Explosion");
System.out.println("String reverse: " + reverseString);
}
public static String reverse(String string) {
final char[] stringLetters = new char[string.length()];
int letterIndex = 0;
for (int index = string.length()-1; index >= 0; index--) {
stringLetters[letterIndex] = string.charAt(index);
letterIndex++;
}
String stringReversed = "";
for (int index = 0; index < string.length(); index++) {
stringReversed = stringReversed + stringLetters[index];
}
return stringReversed;
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que obtém o número de estrelas solicitado ao usuário e imprime o valor elevado ao quadrado, porém mostrado como uma somatória de estrelas (ou asteriscos) em linhas diferentes.Código de exemplo
public class LoopPattern {
public static void main(String[] args) {
System.out.println("Obi-Wan Kenobi says: Hello there! How many stars would you like?");
Scanner scanKeyboard = new Scanner (System.in);
int numberOfStars = scanKeyboard.nextInt();
for(int indexIncreasingLineStar = 1; indexIncreasingLineStar <= numberOfStars; indexIncreasingLineStar++){
for(int indexIncreasingRowStar = 0; indexIncreasingRowStar < indexIncreasingLineStar; indexIncreasingRowStar++){
System.out.print("*");
}
System.out.println();
}
for(int indexDecreasingLineStar = (numberOfStars - 1); indexDecreasingLineStar > 0; indexDecreasingLineStar--){
for(int indexDecreasingRowStar = 0; indexDecreasingRowStar < indexDecreasingLineStar; indexDecreasingRowStar++){
System.out.print("*");
}
System.out.println();
}
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que obtém os eventos do teclado ao pressionar as teclas de setas e mostra essa contagem em uma janela GUI (Interface Gráfica do Usuário).Código de exemplo
public class ArrowKeys {
public ArrowKeys() {
JFrame frame = new JFrame();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setFocusable(true);
JPanel panel = new JPanel();
JLabel upArrow = new JLabel();
JLabel downArrow = new JLabel();
JLabel leftArrow = new JLabel();
JLabel rightArrow = new JLabel();
panel.add(upArrow);
panel.add(downArrow);
panel.add(leftArrow);
panel.add(rightArrow);
frame.addKeyListener(new KeyListener() {
int upArrowCount = 0;
int downArrowCount = 0;
int leftArrowCount = 0;
int rightArrowCount = 0;
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch (keyCode) {
case KeyEvent.VK_UP:
upArrow.setText("Up: " + Integer.toString(upArrowCount++));
break;
case KeyEvent.VK_DOWN:
downArrow.setText("Down: " + Integer.toString(downArrowCount++));
break;
case KeyEvent.VK_LEFT:
leftArrow.setText("Left: " + Integer.toString(leftArrowCount++));
break;
case KeyEvent.VK_RIGHT:
rightArrow.setText("Right: " + Integer.toString(rightArrowCount++));
break;
}
}
@Override
public void keyReleased(KeyEvent e) {
}
});
frame.add(panel);
upArrow.setText("Up: 0");
downArrow.setText("Down: 0");
leftArrow.setText("Left: 0");
rightArrow.setText("Right: 0");
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que obtém os números digitados pelo usuário e retorna a soma de dois números.Código de exemplo
public class AddNumbers {
public static void main(String[] args) {
Scanner scanKeyboard = new Scanner(System.in);
System.out.println("Enter the first number: ");
int firstNumber = scanKeyboard.nextInt();
System.out.println("Enter the second number: ");
int secondNumber = scanKeyboard.nextInt();
System.out.println("The result of the sum: " + (firstNumber + secondNumber));
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna números aleatórios com intervalo definido de 0 a 6.Código de exemplo
public class RandomNumbers {
public static void main(String[] args) {
Random randomNumbers = new Random();
int numberChosen = (randomNumbers.nextInt(6) + 1);
System.out.println("Number randomly chosen: " + numberChosen);
}
public RandomNumbers() {
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna caracteres repetidos dentro de uma String, inclusive espaços vazios.- TODO - Melhoria: Analisar somente caracteres e não espaços vazios;
- TODO - Melhoria: Contar quantas vezes cada caractere foi repetido na String analisada.
Código de exemplo
public static void main(String[] args) {
String sentence = "How many duplicates are there?";
System.out.println(sentence);
StringBuilder characters = new StringBuilder();
StringBuilder duplicates = new StringBuilder();
for (int i = 0; i < sentence.length(); i++) {
String current = Character.toString(sentence.charAt(i));
if (characters.toString().contains(current)) {
if (!duplicates.toString().contains(current)){
duplicates.append(current).append(",");
}
}
characters.append(current);
}
System.out.println(duplicates);
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna todos os números primos a partir de um intervalo numérico informado pelo usuário.Código de exemplo
public class PrimeNumbers {
public static void main(String[] args) { System.out.println(findPrimes(1, 100)); }
public static ArrayList<Integer> findPrimes(int startNumber, int endNumber) {
ArrayList<Integer> primes = new ArrayList<Integer>();
for (int number = startNumber; number < endNumber; number++) {
boolean numberPrime = true;
int numberPair = 2;
float division = (float) (number / 2);
int numberLeftOver = (number % numberPair);
while (division >= numberPair) {
if ( numberLeftOver == 0) {
numberPrime = false;
break;
}
numberPair++;
}
if (numberPrime) {
primes.add(number);
}
}
return primes;
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna se uma frase ou palavra é palíndroma. Palímdroma é a palavra, grupo de palavras, verso ou número que se lê da mesma maneira da esquerda para a direita ou da direita para a esquerda.Código de exemplo
public static void main(String[] args) {
// Exemples: mom, dad, poop, race car, nurses run
String original = "nurses run";
original = original.replace(" ", "");
String reverse = "";
for( int index = (original.length() - 1); index >= 0; index--) {
reverse += original.charAt(index);
System.out.println(reverse);
}
boolean palindrome = true;
for(int index = 0; (index < original.length()); index++) {
if(original.charAt(index) != reverse.charAt(index)) {
palindrome = false;
}
}
if(palindrome) {
System.out.println("Palindrome!");
} else {
System.out.println("Not a palindrome!");
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna o resultado a partir da operação fatorial de um número informado pelo usuário, utilizando a Recursão (ou Recursividade).O fatorial de um número inteiro e positivo “n”, representado por “n!” é obtido a partir da multiplicação de todos os seus antecessores até o número um, cuja expressão genérica é n! = n . (n – 1).
A recursão na programação é bem exemplificada quando uma função é definida em termos de si mesma. Um exemplo da aplicação da recursão são os parsers (analisadores gramaticais) para linguagens de programação. Uma grande vantagem da recursão é que um conjunto infinito de sentenças possíveis, designs ou outros dados podem ser definidos, analisados ou produzidos por um programa de computador finito.
Código de exemplo
public static void main(String[] args) {
System.out.println(factorial(5));
}
public static int factorial(int number) {
if (number == 1) {
System.out.println("factorial(" + number + ") = 1");
return 1;
} else {
System.out.println("factorial(" + number + ") = " + number + " * factorial(" + (number - 1) + ")");
return number * factorial(number - 1);
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que "simula" o clássico jogo da velha, com o usuário versus o computador. Nele, o jogador que preencher três sequências de símbolos vence o jogo.O jogo da velha (português brasileiro) ou jogo do galo (português europeu) ou três em linha é um jogo e/ou passatempo popular. É um jogo de regras extremamente simples, que não traz grandes dificuldades para seus jogadores e é facilmente aprendido. A origem é desconhecida, com indicações de que pode ter começado no antigo Egito, onde foram encontrados tabuleiros esculpidos na rocha, que teriam mais de 3.500 anos. De alguma forma, é um jogo "aparentado" dos "Merels".
Código de exemplo
public static void main (String[] args) {
char[][] gameBoard = {
{' ', '|', ' ', '|', ' '},
{'-', '+', '-', '+', '-'},
{' ', '|', ' ', '|', ' '},
{'-', '+', '-', '+', '-'},
{' ', '|', ' ', '|', ' '},
};
printGameBoard(gameBoard);
System.out.println("Enter your placement (1 to 9): ");
while(true) {
Scanner keyboardScanner = new Scanner(System.in);
int positionPlayer = keyboardScanner.nextInt();
while(positionsPlayer.contains(positionPlayer) || positionsCPU.contains(positionPlayer)){
System.out.println("Position taken! Enter a correct position.");
positionPlayer = keyboardScanner.nextInt();
}
placePiece(gameBoard, positionPlayer, "player");
String battleResult = checkWinner();
if (battleResult.length() > 0) {
System.out.println(battleResult);
break;
}
Random randomPositionCPU = new Random();
int positionCPU = randomPositionCPU.nextInt(9) + 1;
while(positionsPlayer.contains(positionCPU) || positionsCPU.contains(positionCPU)){
positionCPU = randomPositionCPU.nextInt(9) + 1;
}
placePiece(gameBoard, positionCPU, "CPU");
printGameBoard(gameBoard);
battleResult = checkWinner();
if (battleResult.length() > 0) {
System.out.println(battleResult);
break;
}
}
}
Mini Projeto 13: Currency Formatter Challenge by HackerRank
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna formatado em moeda, baseado em localidade ou país, o valor informado.
É recomendado o uso da classe NumberFormat
e o método getCurrencyInstance
.
Código de exemplo
public class CurrencyFormatted {
public static void main(String[] args) {
Scanner inputScanner = new Scanner(System.in);
double payment = inputScanner.nextDouble();
inputScanner.close();
// Write your code here.
String us = NumberFormat.getCurrencyInstance(Locale.US).format(payment);
String india = NumberFormat.getCurrencyInstance(new Locale("en", "in")).format(payment);
String china = NumberFormat.getCurrencyInstance(Locale.CHINA).format(payment);
String france = NumberFormat.getCurrencyInstance(Locale.FRANCE).format(payment);
System.out.println("US: " + us);
System.out.println("India: " + india);
System.out.println("China: " + china);
System.out.println("France: " + france);
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna uma mensagem aleatória de biscoitos da sorte (Fortune Cookie).
Um biscoito da sorte é um biscoito crocante e açucarado geralmente feito de farinha, açúcar, baunilha e óleo de gergelim com um pedaço de papel dentro, uma "fortuna", geralmente um aforismo ou uma vaga profecia. A mensagem dentro também pode incluir uma frase em chinês com tradução e / ou uma lista de números da sorte usados por alguns como números de loteria; uma vez que relativamente poucas mensagens distintas são impressas, no caso registrado em que os números vencedores foram impressos, a loteria teve um número inesperadamente alto de vencedores compartilhando um prêmio.
Código de exemplo
public class Fortunes {
static String[] fortunes = {
"Today it's up to you to create the peacefulness you long for.",
"A friend asks only for your time not your money.",
"If you refuse to accept anything but the best, you very often get it.",
"A smile is your passport into the hearts of others.",
"A good way to keep healthy is to eat more Chinese food.",
"Your high-minded principles spell success.",
"Hard work pays off in the future, laziness pays off now.",
"Change can hurt, but it leads a path to something better.",
"Enjoy the good luck a companion brings you.",
"People are naturally attracted to you.",
"Hidden in a valley beside an open stream- This will be the type of place where you will find your dream.",
"A chance meeting opens new doors to success and friendship."
};
public static void main(String[] args) {
Random random = new Random();
int randomFortunes = random.nextInt(fortunes.length);
System.out.println(fortunes[randomFortunes]);
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna uma mensagem criptografada.
Código de exemplo
public static void main(String[] args) {
int key = 6;
String text = "Hey, how's it hangin?";
System.out.println(text);
char[] chars = text.toCharArray();
for (char c : chars) {
c += key;
System.out.print(c);
}
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna uma mensagem baseada no seu nome e dia de nascimento.
Código de exemplo
public static void main(String[] args) {
System.out.println("Enter the first letter of your name and \n"
+ "the day of the month you were born: ");
Scanner keyboardScanner = new Scanner(System.in);
String letter = keyboardScanner.next().toUpperCase();
int day = keyboardScanner.nextInt();
HashMap<String, String> letters = new HashMap<String, String>();
letters.put("A", "WRETCHED");
letters.put("B", "DEEPLY");
letters.put("C", "PHENOMENAL");
letters.put("D", "GROSSLY");
letters.put("E", "MONUMENTAL");
letters.put("F", "EXPLOSIVE");
letters.put("G", "UNEXPECTEDLY");
letters.put("H", "THICK");
letters.put("I", "TINY");
letters.put("J", "LONG");
letters.put("K", "GIGANTIC");
letters.put("L", "TREMENDOUS");
letters.put("M", "DANGEROUSLY");
letters.put("N", "CRAZY");
letters.put("O", "SCRAWNY");
letters.put("P", "BEAUTIFLY");
letters.put("Q", "ROTTENLY");
letters.put("R", "SPOOKY");
letters.put("S", "LUMPY");
letters.put("T", "MODERATELY");
letters.put("U", "HAPPY");
letters.put("V", "TROUBLESOME");
letters.put("W", "SAGGY");
letters.put("X", "HEARTY");
letters.put("Y", "BIG");
letters.put("Z", "LUXURIOUS");
HashMap<Integer, String> days = new HashMap<Integer, String>();
days.put(1, "SOUR");
days.put(2, "GREAT");
days.put(3, "OLD");
days.put(4, "LOUD");
days.put(5, "LITTLE");
days.put(6, "EPIC");
days.put(7, "WET");
days.put(8, "DANK");
days.put(9, "FAKE");
days.put(10, "SENILE");
days.put(11, "MUSTY");
days.put(12, "SHARP");
days.put(13, "DANGEROUS");
days.put(14, "MONOTONE");
days.put(15, "SQUEAKY");
days.put(16, "NOISELESS");
days.put(17, "ROTTEN");
days.put(18, "FAT");
days.put(19, "SOFT");
days.put(20, "POTENT");
days.put(21, "SUDDEN");
days.put(22, "POWERFUL");
days.put(23, "STRANGE");
days.put(24, "STURDY");
days.put(25, "FLAT");
days.put(26, "FULL");
days.put(27, "WINDY");
days.put(28, "HORRID");
days.put(29, "HOT");
days.put(30, "SILENT");
System.out.println("You are a " + letters.get(letter) + " " + days.get(day) + " FART");
}
Desenvolvido por: @Alex Lee
Descrição do projeto
Desenvolvimento de um script que retorna dados de data e descrição do crime ocorrido em 2006, a partir de um arquivo em CSV. O arquivo de crime de Sacramento em janeiro de 2006 contém 7.584 registros de crimes, conforme disponibilizado pelo Departamento de Polícia de Sacramento. As agências de aplicação da lei devem gostar de trabalhar com este conjunto de dados.
Por definição, CSV é um formato de arquivo que significa “comma-separated-values” (valores separados por vírgulas). Isso significa que os campos de dados indicados neste formato normalmente são separados ou delimitados por uma vírgula.
Código de exemplo
public static void main(String[] args) throws IOException {
String filePath = "/Users/henriquematheusalvespereira/Downloads/SacramentocrimeJanuary2006.csv";
String line = "";
int quantityCrimes = 0;
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
while ((line = bufferedReader.readLine()) != null) {
String[] crimeValues = line.split(",");
System.out.println("Date | Time: " + crimeValues[0] + " | Crime event: " + crimeValues[5]);
quantityCrimes += 1;
}
System.out.println("\namount of crimes registered in 2006: " + quantityCrimes);
} catch (FileNotFoundException exception) {
exception.printStackTrace();
} catch (IOException exception) {
exception.printStackTrace();
}
}
Desenvolvido por: @Bro Code
Descrição do projeto
Desenvolvimento de um script que simula o clássico jogo da cobrinha.
Código de exemplo
Plugins
- Faça um fork deste repositório (https://github.com/henriqueotogami/learning-java/fork);
- Crie um branch com as suas modificações
git checkout -b meu-novo-recurso
; - Faça um commit
git commit -am 'Adicionando um novo recurso ...'
; - Faça um push
git push origin meu-novo-recurso
; - Crie uma nova pull request neste repositório.
Depois que sua solicitação (pull request) for aceita e adicionada (merged) ao ramo principal (branch main), você pode excluir sua branch tranquilamente.