Skip to content

Instantly share code, notes, and snippets.

@viniciusfeitosa
Last active December 12, 2015 03:59
Show Gist options
  • Save viniciusfeitosa/4711188 to your computer and use it in GitHub Desktop.
Save viniciusfeitosa/4711188 to your computer and use it in GitHub Desktop.
Desafio 1 WDEV
package com.viniciusfeitosa.desafio1;
import java.util.HashMap;
import java.util.Scanner;
public class TesteDesafio {
public static void main(String[] args) {
try {
System.out.print("Digite seu SMS com no máximo 255 digitos:");
Scanner entrada = new Scanner(System.in);
String fraseNumerica = "";
String ultimoRetorno = " ";
String fraseDaEntrada = "";
RetornarNumeros retornarNumeros = new RetornarNumeros();
if (entrada.hasNextLine()){
fraseDaEntrada = entrada.nextLine();
validaTamanhoDaFrase(fraseDaEntrada);
char[] letrasDaEntrada = fraseDaEntrada.toUpperCase().toCharArray();
for (char letra : letrasDaEntrada) {
//Aqui Colocaria um Chain of Responsability, mas me falta tempo.
if(retornarNumeros.quandoInserir(letra).contains(ultimoRetorno.substring(0, 1))){
fraseNumerica += "_"+retornarNumeros.quandoInserir(letra);
} else {
fraseNumerica += retornarNumeros.quandoInserir(letra);
}
ultimoRetorno = retornarNumeros.quandoInserir(letra);
}
}
System.out.print("O Retorno é: ");
System.out.println(fraseNumerica);
} catch (Exception e) {
System.out.println("Foi digitado algo inválido: " + e);
}
}
private static void validaTamanhoDaFrase(String fraseDaEntrada) {
if (fraseDaEntrada.length() > 255) throw new RuntimeException("A frase é maior que o permitido");
}
}
class RetornarNumeros{
public String quandoInserir(char letra) {
String l = Character.toString(letra);
HashMap<String, String> mapDigitos = new HashMap<String, String>();
mapDigitos.put(" ", "0");
mapDigitos.put("A", "2");
mapDigitos.put("B", "22");
mapDigitos.put("C", "222");
mapDigitos.put("D", "3");
mapDigitos.put("E", "33");
mapDigitos.put("F", "333");
mapDigitos.put("G", "4");
mapDigitos.put("H", "44");
mapDigitos.put("I", "444");
mapDigitos.put("J", "5");
mapDigitos.put("K", "55");
mapDigitos.put("L", "555");
mapDigitos.put("M", "6");
mapDigitos.put("N", "66");
mapDigitos.put("O", "666");
mapDigitos.put("P", "7");
mapDigitos.put("Q", "77");
mapDigitos.put("R", "777");
mapDigitos.put("S", "7777");
mapDigitos.put("T", "8");
mapDigitos.put("U", "88");
mapDigitos.put("V", "888");
mapDigitos.put("W", "9");
mapDigitos.put("X", "99");
mapDigitos.put("Y", "999");
mapDigitos.put("Z", "9999");
String retornoLetra = mapDigitos.get(l);
return retornoLetra;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment