CodeGym /Blogue Java /Random-PT /Nível antigo 09
John Squirrels
Nível 41
San Francisco

Nível antigo 09

Publicado no grupo Random-PT

Conhecimento vs. Habilidades

Antigo Nível 09 - 1A faculdade nos ensinou que não existe grande diferença entre teoria e prática. Bem, certamente você entende que não é a mesma coisa. Mas você não vê a diferença central. No entanto, há um. A maioria das pessoas coloca o sinal de igualdade entre “eu sei” e “eu posso”. Você? Que tal alguns exemplos?
  1. Eu sei que fumar me faz mal, mas eu fumo.
  2. Eu sei que fast-food é ruim para mim, mas eu como.
  3. Conheço as regras de trânsito, mas não sei dirigir.
  4. Sei que correr é bom para mim, mas não corro de manhã.
Muitas vezes acontece que as pessoas confundem “eu sei” com “eu posso”. É um bom exemplo com as regras de trânsito. Se uma pessoa conhece os regulamentos e sabe dirigir, isso significa que ela pode dirigir? Não. E se ele achar que sabe dirigir? Então, por que ele precisaria de um instrutor - ele já sabe tudo. Quando você tem certeza de que já sabe tudo, provavelmente não aprenderá nada de novo. E se você tem certeza que sabe fazer tudo, não vai estudar. Um pensamento como esse nem vai passar pela sua cabeça. E isso significa que você perderá todas as oportunidades maravilhosas de aprender algo. A faculdade normal só te dá conhecimento; você terá que adquirir habilidades por conta própria. Mas o que eu ouço? Você teve prática além da teoria em sua faculdade? Ok, se você estudou na faculdade de física, faça um modelo funcional de uma máquina a vapor com eficiência de pelo menos 20%. Aposto que você sabe como fazer, mas na verdade não vai conseguir fazer, certo? Você é um químico ? Faça pó sem fumaça. Você sabe como, mas não pode, ha? Matemático, é você? Calcule a trajetória de um projétil de artilharia. Não se esqueça de levar em consideração o formato da casca. Pontos matemáticos não voam na vida real. E não há cavalos esféricos. Antigo Nível 09 - 2Biólogo? Isole a penicilina. Este mofo cresce em melões, então você sabe. Você sabe como – maravilhoso! Consegues fazê-lo? Economista?Faça uma previsão de crescimento do preço do petróleo. Feito? E agora transforme-o em $ 2.000 ou $ 200.000 por ano com base em sua previsão. Você já jogou no FOREX? Por dinheiro real? Ou você só sabe o que é? Economia internacional? Esplêndido! Onde abrir uma empresa offshore? Em Hong-Cong, Irlanda ou nos EUA. Por que? Mesmo que saiba disso, o que é duvidoso, dificilmente conseguirá fazê-lo, visto que nunca o fez de fato. Você não tem a menor ideia de como fazer isso. Oh, você não estudou isso na faculdade? Que direito eu tenho de lhe dar tarefas para as quais você não está preparado? Porque essas são as tarefas da vida real. Essa prática IS , tudo que você estudou na faculdade é: cavalos esféricos, competição perfeita – nada disso existe na vida real. Mas por que eu esqueci de mencionarespecialista em marketing ? Qual é a melhor maneira de gastar meus $ 500 para que o maior número possível de pessoas saiba sobre minhas palestras? No anúncio? Você está ciente de que não apenas a publicidade clássica já está desatualizada, mas também o conceito de USP (proposta única de venda), que tenho certeza de que você aprendeu na faculdade como uma panacéia quase única. Esqueça que você sabe de alguma coisa. Pergunte a si mesmo – o que posso fazer? Útil, quero dizer? Algo pelo qual as pessoas pagariam dinheiro? Bom dinheiro, quero dizer? Então, amigos, vamos agradecer a um curso tão maravilhoso como o CodeGym. Com ele você não apenas saberá programar, mas também será capaz de fazê-lo. Você também poderá conseguir um emprego e ganhar um bom dinheiro em poucos anos. Espero que esse dinheiro seja suficiente para viver bem e aconchegante. Vou dizer mais uma vez, então lembre-se: não importa o que você sabe. A única coisa que importa são as habilidades úteis que você tem, aquelas que as pessoas gostariam de pagar a você. Quanto mais cedo você entender isso, melhor.

Você atingiu um novo nível

nível 9

Antigo Nível 09 - 3

1 Risha, rastreamento de pilha

Antigo Nível 09 - 4- Ei! Hoje vou te contar o que é o stack trace. Mas primeiro deixe-me explicar o que é a pilha. - Imagine uma pilha de papéis - atribuições para um determinado funcionário. Uma nova atribuição pode ser colocada no topo da pilha e ele pegará uma atribuição do topo da pilha. Assim, as atribuições não serão feitas por ordem de chegada. Toda vez que o funcionário faz a tarefa que vem por último. Essa estrutura de coleção é chamada de pilha . - Em Java, existe uma coleção especial - Stack. Esta coleção tem os métodos «adicionar um elemento» e «pegar (obter/retirar) um elemento». Como você já sabe, o último elemento adicionado será levado primeiro. - Zumbir. Não é difícil, eu acho. - Multar. Então deixe-me explicar o que é um rastreamento de pilhaé. - Imagine que em Java a função À chama a função B , e esta chama a função C , que por sua vez chama a função D . Então, para sair da função B , você deve primeiro sair da função C , e para isso você deve sair da função D . Isso é muito semelhante a uma pilha. - E qual é a semelhança? - Na pilha, para chegar a uma determinada tarefa, você também deve concluir todas as tarefas colocadas no topo. - Bom, é meio que uma analogia, mas não tenho certeza se entendi tudo direito. - Olhe aqui. Em Java, uma pilha é um conjunto de elementos. É como folhas de papel em uma pilha. Para tirar a terceira de cima, você deve pegar a segunda folha, mas antes disso você tem que pegar a primeira. Você sempre pode colocar e tirar folhas, mas pode colocá-las apenas por cima e tirar apenas por cima. O mesmo se aplica à chamada de função. A função À chama a função B , a última chama a função C . Para sair de A , você deve primeiro sair de B , e para fazer isso você deve sair de C . - Espere um minuto. Se eu acertar, toda a pilha acaba em «somente a última folha que foi colocada na pilha pode ser retirada» e «primeiro, a última função chamada deve sair». É assim mesmo? - Sim. Assim, a sequência de chamadas de função é a «pilha de chamada de função», ou simplesmente «pilha de chamada». A função chamada por último deve ser encerrada primeiro. Vejamos o exemplo: Antigo Nível 09 - 5- OK. Tudo está claro com a chamada de função, eu acho. Mas o que é esse StackTraceElement ? - A máquina virtual Java registra todas as chamadas de função. Para o efeito, dispõe de uma coleção especial - pilha. Quando uma função chama outra, a JVM coloca um novo elemento StackTraceElement nessa pilha. Quando a função termina, o elemento é excluído da pilha. Assim, essa pilha sempre armazena informações atualizadas sobre o estado atual da «pilha de chamada de função». - Cada StackTraceElementcontém informações sobre o método chamado. Portanto, você pode obter o nome desse método usando o getMethodName . - O exemplo acima mostra isso:
  1. Obtenha a «pilha de chamadas»:
  2. Itere a matriz usando o loop for-each . Espero que você não tenha esquecido.
  3. Imprima os nomes dos métodos para System.out .
- Uma coisa interessante, e aparentemente fácil. Obrigado, Risha!

2 Diego, Tarefa na exibição de rastreamento de pilha

- Ei, amigo! Aqui está uma pequena tarefa para exibir na tela um rastreamento de pilha.
Tarefas
1 Cada método deve retornar seu StackTrace
Write cinco métodos que chamam uns aos outros. Cada método deve retornar seu StackTrace.
2 StackTrace novamente
Escreva cinco métodos que chamam uns aos outros. Cada método deve retornar o nome de seu método chamador. Você pode obter o método do chamador usando StackTrace.
3 O método deve retornar o número da linha do código a partir do qual o método foi chamado.
Escreva cinco métodos que chamam uns aos outros. Cada método deve retornar o número da linha do código a partir do qual esse método foi chamado. Use a função element.getLineNumber() .
4 Rastreamento de pilha de 10 chamadas
Escreva o código para obter um rastreamento de pilha de 10 chamadas.
5 O método deve retornar um resultado - sua profundidade de rastreamento de pilha
Escreva um método que exiba e retorne sua profundidade de rastreamento de pilha. A profundidade do rastreamento de pilha é o número de seus métodos (o número de elementos na lista).

3 Elly, erros e exceções

- Ei, amigo! Hoje temos uma aula muito interessante. Vou falar sobre exceções. Exceção é um mecanismo especial para controlar erros no programa. Seguem alguns exemplos de erros que podem ocorrer no programa:
  1. O programa tenta gravar um arquivo no disco cheio.
  2. O programa tenta chamar um método de uma variável que armazena a referência nula.
  3. O programa tenta dividir um número por 0.
Essas ações resultam em um erro. Normalmente, isso leva ao fechamento de um programa – não adianta continuar executando o código. - Por que é que? - Faz sentido virar o volante quando o carro está caindo de um precipício? - Quer dizer que o programa deve terminar? - Sim. Antes era assim. Qualquer erro levou ao encerramento de um programa. - É uma decisão muito inteligente. - Não seria melhor tentar trabalhar? - Sim. Você digitou um texto enorme no MS Word, salvou, não foi salvo, mas o programa diz que está tudo bem. E você continua digitando. Tolo, não é? - Sim. - Então os programadores criaram uma jogada interessante:cada função retornou o status de seu trabalho. 0 significava que a função funcionava como deveria, qualquer outro valor – que havia um erro : esse valor era um código de erro. - Mas essa abordagem tinha uma desvantagem. Após cada (!) chamada de função, você tinha que verificar o código (número) retornado pela função. Em primeiro lugar, era inconveniente: o código de tratamento de erros raramente era executado, mas você sempre tinha que escrevê-lo. Em segundo lugar, as próprias funções geralmente retornam valores diferentes - o que fazer com elas? - Sim. Isso é o que eu ia perguntar. - Então veio um futuro brilhante - exceções e tratamento de erros apareceram. Veja como funciona:
  1. Quando ocorre um erro, a máquina virtual Java cria um objeto especial – uma exceção – contendo todas as informações sobre o erro. Para erros diferentes, existem exceções diferentes.
  2. Então esta exceção força o programa a interromper a função atual imediatamente, e a próxima função, até que ela saia do método principal. Depois disso o programa termina. Os desenvolvedores Java chamam esse processo de "reverter a pilha de chamadas".
- Mas você disse que o programa não vai sair com certeza. - Isso mesmo, porque existe uma maneira de capturar a exceção. Quando e onde você precisar, você pode escrever um código especial para capturar essas exceções e fazer algo importante. - Para fazer isso, existe um try-catch de construção especial . Veja como funciona: Antigo Nível 09 - 6- Por que «Após a chamada do método1. Nunca será exibido» não será exibido na tela? - Estou feliz que você perguntou sobre isso. Na linha 25, há uma divisão por zero. Isso leva a um erro – uma exceção. A máquina virtual Java criou o objeto ArithmeticException contendo as informações do erro. Este objeto é uma exceção. - Ocorreu uma exceção dentro do método method1() .Isso resultou no encerramento imediato do método. Isso também levaria ao término do método main , se não houvesse bloco try-catch . - Se ocorrer uma exceção dentro do bloco try, ela será capturada no bloco catch . O restante do código no bloco try não será executado, a execução do bloco catch será iniciada imediatamente. - Eu não entendo muito bem. - Em outras palavras, este código funciona assim:
  1. Caso ocorra uma exceção dentro do bloco try , o código deste bloco não é mais executado, mas inicia-se a execução do catch do bloco .
  2. Se nenhuma exceção ocorreu, o bloco try é executado até o final e catch nunca é executado .
- Aham! - Imagine que após cada chamada de método verificamos se o método chamado terminou por si só ou devido a uma exceção. Se houver uma exceção, a JVM começa a executar a captura de bloco, se disponível, e captura uma exceção. Se não houver bloco catch, a JVM encerra o método atual. Em seguida, a mesma verificação começa no método que chamou o método atual. - Agora acho que entendi. - Isso é bom. - E o que é essa exceção dentro do bloco catch? - Todas as exceções são classes herdadas da classe Exception. Podemos capturar qualquer um deles especificando sua classe no catchbloco, ou todos eles de uma vez, especificando uma exceção de classe pai comum. Então, a partir da variável e (essa variável armazena a referência de um objeto de exceção) você pode obter todas as informações necessárias sobre o erro. - Ótimo! E se no meu método ocorrerem exceções diferentes, posso tratá-las de maneiras diferentes? - Você tem que. Você pode fazer isso assim: Antigo Nível 09 - 7- O bloco try pode conter vários blocos catch , cada um dos quais irá capturar exceções de seu tipo. - Umf. Bem, eu meio que entendi. Claro, não vou escrever algo assim sozinho. No entanto, não vou ficar com medo se encontrar esse código.

4 Elly, RuntimeException, lança

Antigo Nível 09 - 8- Resolvi trazer outro assunto hoje. Em Java, todas as exceções são divididas em dois tipos – controladas/verificadas e não controladas/não verificadas . As exceções marcadas devem ser capturadas, as não verificadas podem ser capturadas , mas isso não é necessário . - É possível lançar exceções em um código de propósito? - Em seu código, você mesmo pode lançar exceções. Você pode até escrever suas próprias exceções. Mas vamos fundo neste buraco mais tarde. Agora vamos aprender como trabalhar com as exceções lançadas pela máquina virtual Java. - OK. - Se exceções ClassNotFoundException e FileNotFoundExceptionsão lançados (aparecem) em um método, o programador deve especificá-los na assinatura de um método (cabeçalho do método). Tais exceções são verificadas. Geralmente é assim: Nível antigo 09 - 9- Então, apenas escrevemos lances e listamos as exceções separadas por vírgulas. Certo? É assim mesmo? - Sim. Mas há outra coisa interessante. Para que o exemplo abaixo tenha sido compilado, o método que chama method1() deve capturar essas exceções ou jogá-las adiante. Se você deseja lançar a exceção verificada, precisa especificá-la no cabeçalho do método . - Mais uma vez, se no método principal , você deseja chamar um método que tenha em sua frase de cabeçalho throws FileNotFoundException, …então você tem que fazer uma destas duas coisas:
  1. para capturar exceções FileNotFoundException, …
    Você terá que agrupar o código onde chama um método perigoso com um bloco try-catch
  2. não capturar exceções FileNotFoundException, …
Você terá que adicionar essas exceções à lista de lances do seu método main . - Você vai me dar um exemplo? - Veja aqui: Antigo Nível 09 - 10- Este exemplo não será compilado, pois o método main chama o método method1(), que lança exceções que devem ser capturadas. - Para que o exemplo seja compilado, você precisa adicionar tratamento de exceção ao método main . Você pode fazer isso de duas maneiras: Antigo Nível 09 - 11- E aqui pegamos usando try-catch : Antigo Nível 09 - 12- Está ficando mais claro, mas muito pouco. - Observe o exemplo abaixo: Antigo Nível 09 - 13- Ainda há uma exceção – RuntimeException e classes herdadas dela.Não é necessário pegá-los ou jogá-los. Estas são exceções não verificadas. Essas exceções são consideradas difíceis de prever, por isso é quase impossível prever sua ocorrência. Você pode fazer o mesmo com eles, mas não há necessidade de especificá-los em throws .

5 Risha, Rolling the call stack, como fazer em exceções

- Gostaria de falar um pouco mais sobre como as exceções funcionam. O exemplo abaixo explica isso: Nível antigo 09 - 14- Não entendi. - OK. Vou explicar o que está acontecendo. - No exemplo à esquerda, chamamos vários métodos em ordem de cadeia. Em method2() nós especificamente criamos e lançamos uma exceção (para iniciar um erro). - O exemplo à direita mostra o que acontece. Veja o method2() . É nisso que a criação de uma exceção se transforma: criamos um objeto do tipo RuntimeException , armazenamos em uma variável especial exceção e imediatamente saímos do método – return . - No method1 , após a chamada do method2 há uma verificação,se há exceção ou não; se houver uma exceção, o method1 terminará imediatamente. Essa verificação é feita implicitamente após a chamada de cada (!) método Java. - Uau! - Exatamente. - Na coluna à direita do método main escrevi o que acontece quando uma exceção é capturada pelo bloco try-catch . Se não houver exceção, o código continuará sendo executado conforme planejado. Se houver uma exceção do tipo especificado em catch , nós a tratamos. - E o que significam throw e instanceof ? - Observe a última linha à esquerda e lance novas RuntimeException(s). Desta forma, criamos e lançamos uma exceção. Este é apenas um exemplo. Não vamos fazer isso até agora. - Usando o comando « à instanceof B » no bloco direito verificamos se o objeto a tem o tipo B . Ou seja, se o objeto armazenado na variável exceção é do tipo RuntimeException . É uma expressão lógica. - Bem, está ficando um pouco mais claro.

6 Diego, tarefa de captura de exceção

- Olhe aqui! Tio Diego trouxe algumas tarefas para você pegar. Desejo-te sorte. Acho que você vai precisar. Hehe. Antigo Nível 09 - 15- Ei, amigo! Aqui estão algumas tarefas interessantes de captura de exceção.
Tarefas de captura
1 1. Exceção ao operar com números
Capture a exceção que ocorre ao executar o código:
int a = 42 / 0;
Exibir a exceção na tela, especificando seu tipo
2 2. Exceção ao operar com strings
Capture a exceção que ocorre ao executar o código:
String s = null;
String m = s.toLowerCase();
Exiba a exceção na tela, especificando seu tipo.
3 3. Exceção ao operar com arrays
Captura a exceção que ocorre ao executar o código:
int[] m = new int[2];
m[8] = 5;
Exiba a exceção na tela, especificando seu tipo.
4 4. Exceção ao operar com coleções de List
Capture a exceção que ocorre ao executar o código:
ArrayList<String> list = new ArrayList<String>();
String s = lista.get(18);
Exiba a exceção na tela, especificando seu tipo.
5 5. Exceção ao operar com coleções de mapas
Capture a exceção que ocorre ao executar o código:
HashMap<String, String> map = new HashMap<String, String>(null);
map.put(nulo, nulo);
map.remove(null);
Exiba a exceção na tela, especificando seu tipo.
- Dica: primeiro escreva um programa, depois veja qual exceção ocorre e depois altere o código e capture essa exceção.

7 Risha, Como funciona a captura múltipla

Antigo Nível 09 - 16- Agora, mais algumas palestras interessantes. Eu gosto muito de ensinar. - Quero te contar como funciona uma captura múltipla . Na verdade é muito simples: quando ocorre uma exceção no bloco try , a execução do programa é transferida para o primeiro catch . - Se o tipo especificado entre parênteses do bloco catch for igual ao tipo do objeto de exceção, a execução do código começa dentro do {}. Caso contrário, vamos para a próxima captura . A verificação é repetida lá. - Se não houver mais blocos catch , mas a exceção não foi capturada, ela é lançada adiante e o método atual é interrompido. - Eu vejo. Essa captura será executada, cujo tipo corresponde ao tipo de exceção. - Sim certo. Na verdade, é um pouco mais complicado: o ponto é que as classes podem ser herdadas umas das outras. Se a classe «Vaca» é herdada da classe «Animal», o objeto do tipo «Vaca» pode ser armazenado não apenas em uma variável do tipo «Vaca», mas também em uma variável do tipo «Animal» . - E daí? - Como todas as exceções são herdadas das classes Exception ou RuntimeException (que também é herdada de Exception ), todas elas podem ser capturadas usando os comandos catch (Exception e) ou catch (RuntimeException e) . - E daí? - Isso significa que,primeiro, você pode capturar qualquer exceção usando o comando catch(Exception e) . Em segundo lugar, a ordem dos blocos catch importa. Exemplos: - A ArithmeticException resultante da divisão por 0 é capturada no segundo catch. Antigo Nível 09 - 17- No exemplo abaixo, ArithmeticException é capturado no primeiro catch , porque as classes de todas as exceções são herdadas de Exception. Portanto, Exception captura qualquer exceção . Antigo Nível 09 - 18- No exemplo abaixo, a exceção ArithmeticException não é capturada, mas lançada para o método de chamada. Antigo Nível 09 - 19- Bem, está ficando mais claro agora. Essas exceções não são tão fáceis. - Parece que sim. Na verdade, é uma das coisas mais simples em Java. - Estou em dúvida se fico contente ou chateado com isso...

8 Diego, Múltiplas tarefas de captura de exceção

- Ei, amigo! Ontem fiquei bêbado e compliquei demais suas tarefas, mas espero que não haja ressentimentos de sua parte e que você resolva todos eles. É para o seu próprio bem. Aqui:
Tarefas
1 1. Exceções
Existe um método que lança duas exceções herdadas de Exception e as outras duas herdadas de RuntimeException : NullPointerException , ArithmeticException , FileNotFoundException e URISyntaxException .

Você precisa capturar NullPointerException e FileNotFoundException , mas não capturar ArithmeticException e URISyntaxException . Como fazer isso?
2 2. Capturando exceções
Há três exceções herdadas sequencialmente de Exception :
class Exception1 extends Exception
class Exception2 extends Exception1
class Exception3 extends Exception2
Existe um método, que é descrito da seguinte forma:
public static void method1() throws Exception1, Exception2, Exception3

Write a catch bloco para capturar todos os três Exception1 , Exception2 e Exception3
3 3. Capturando exceções seletivas
1. Descubra quais exceções são lançadas pelo método BEAN.methodThrowExceptions .
2. O método processExceptions() deve chamar o método BEAN.methodThrowExceptions e tratar as exceções:
2.1. se ocorrer uma exceção FileSystemException , registre-a chamando o método BEAN.log e lance adiante
2.2. se ocorrer uma exceção CharConversionException ou qualquer outra IOException , basta registrá-la chamando o método BEAN.log
3. Adicione a classe/tipo da exceção que você está encaminhando em 2.1. para o processExceptions ()assinatura do método.
4. Trate a exceção restante no método main() e registre-a. Use try..catch

Dica:
Se você capturou a exceção MyException , que não queria capturar, você pode jogá-la adiante usando o seguinte código:
catch (MyException e) {
throw e;
}
4 4. Capturando exceções verificadas
Trate todas as exceções verificadas no método processExceptions() .
Você precisa exibir na tela cada exceção verificada que ocorreu.
Você pode usar apenas uma tentativa de bloco .
5 5. Capturando exceções não verificadas
Trate todas as exceções não verificadas no método processExceptions() .
Você precisa exibir na tela um rastreamento de pilha de cada exceção ocorrida usando o método printStack() .
Você pode usar apenas uma tentativa de bloco .

9 Professor, Palestra sobre exceções

- Hoje temos um tema superinteressante - exceções. Na época, quando jovens cientistas e programadores estavam profundamente entusiasmados com este tópico... - Desculpe, devo ir ao laboratório. Aqui estão as notas de aula. Acho que você descobrirá por si mesmo. Aqui: Exceções Java (Documentação Oracle) Manipulação de Exceções em Java (Java T point) Java - Manipulação de Exceções (ponto de tutoriais) Manipulação Básica de Exceções em Java

10 de julho

- Amigo, o que você achou da aula de hoje? Seu cérebro pósitron ainda não funcionou? As tarefas de Diego são suficientes para cansar qualquer um. Vamos ter um momento de cerveja e relaxar. Você ainda está de pé?

11 Capitão Esquilos

- Olá, soldado! - Bom Dia senhor! - Tenho uma notícia incrível para você. Aqui está uma verificação rápida para reforçar suas habilidades. Faça isso todos os dias e você aprimorará suas habilidades rapidamente. As tarefas são especialmente projetadas para serem executadas no Intellij IDEA.
Tarefas adicionais a serem executadas no Intellij Idea
1 1. Divisão por zero
Crie um método public static void divisionByZero() , onde você precisa dividir qualquer número por zero, e mostre na tela o resultado da divisão.
Envolva a chamada do método divisionByZero() em um try..catch . Exiba na tela o stack trace da exceção utilizando o método exception.printStackTrace() .
2 2. Contagem regressiva de 10 a 0
Escreva um loop para contagem regressiva de 10 a 0. Use Thread.sleep(100) para fazer um atraso;
Envolva a chamada de suspensão em um try..catch .
3 3. Envolva um método em um try..catch
Leia os números do teclado. Escreva um código para ler números do teclado em um método separado readData() .
Envolva todo o corpo deste método (todo o código dentro do método readData() , exceto a declaração da lista onde os números serão armazenados) em um try..catch .

Se o usuário inserir algum texto em vez de inserir um número, o método deverá capturar a exceção e exibir na tela todos os números inseridos anteriormente.
Exibir números na tela. Cada número deve estar em uma nova linha. A ordem dos números deve ser exatamente como na entrada.
4 4. Conversor de data
Lê no teclado uma data no formato «18/08/2013»
Exibe na tela essa data no formato «18 DE AGOSTO DE 2013».
Use os objetos Date e SimpleDateFormat .
5 5. Vogais e consoantes
Escreva um programa que leia linhas do teclado.
O programa deve exibir na tela duas strings:
1) a primeira string deve conter vogais
2) a segunda string deve conter consoantes e caracteres de pontuação do texto digitado.
Separe os caracteres por espaços.

Exemplo de entrada:
Stop look listen
Exemplo de saída:
oooie
stplklstn
6 6. O conto da Chapeuzinho Vermelho
1. Existem cinco classes: Chapeuzinho Vermelho, avó, empada, lenhador, lobo.
2. Cada classe possui dois campos do tipo ArrayList : kill e ate.
3. Os objetos necessários já estão criados (capuz, avó, ...).
4. Crie a relação correta (quem comeu e matou quem) para obter a lógica do «Chapeuzinho Vermelho».
7 7. Mova modificações estáticas
Mova modificadores estáticos para que o código seja compilado.
8 8. Lista de arrays de números
Crie uma lista cujos elementos sejam arrays de números. Adicione à lista cinco matrizes de objetos com comprimento 5, 2, 4, 7, 0, respectivamente. Preencha matrizes com quaisquer dados e exiba-os na tela.
9 9. Dez gatos
Crie uma classe Cat com um campo String name .
Crie um mapa de dicionário<String, Cat> , adicione 10 gatos no modelo «Name» - «Cat».
Obtenha do mapa um conjunto de nomes e exiba o conjunto na tela.
- Essas tarefas eram para verdes. Adicionei tarefas bônus de maior complexidade. Apenas para armas de topo.
Tarefas bônus
1 1. O programa não compila e não roda. Consertá-lo.
Tarefa: O programa deve ler dois nomes de arquivo do teclado e copiar o primeiro arquivo para o local especificado pelo segundo nome.
2 2. Adicione novas funcionalidades ao programa.
Tarefa Antiga: O programa deve ler do teclado dois nomes de arquivo e copiar o primeiro arquivo para o local especificado pelo segundo nome.
Nova tarefa: O programa deve ler do teclado dois nomes de arquivo e copiar o primeiro arquivo para o local especificado pelo segundo nome.

Se o arquivo (que vai ser copiado) com o nome especificado não existir, o programa deve exibir na tela a mensagem «Arquivo não existe» e tentar ler novamente o nome do arquivo no console antes de ler o nome do segundo arquivo (destino).
3 3. Aprender e praticar algoritmo.
Leia no teclado a lista de palavras e números. Exibe na tela as palavras em ordem crescente e os números em ordem decrescente.

Exemplo de entrada:
Cereja
1
Feijão
3
Maçã
2
0
Melancia

Exemplo de saída:
Maçã
3
Feijão
2
Cereja
1
0
Melancia
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION