Source code for submission s701

Morzeovka.java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package morzeovka;
  6.  
  7. /**
  8.  *
  9.  * @author kormanec4
  10.  */
  11. public class Morzeovka {
  12.  
  13. /**
  14.   * @param args the command line arguments
  15.   */
  16. public static void main(String[] args) {
  17. new Program();
  18. }
  19. }
  20.  

Program.java

download edit
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package morzeovka;
  6.  
  7. import java.util.ArrayList;
  8. import java.util.HashMap;
  9. import java.util.HashSet;
  10. import java.util.Scanner;
  11.  
  12. /**
  13.  *
  14.  * @author kormanec4
  15.  */
  16. class Program {
  17.  
  18. private Scanner sc;
  19. private String vstup;
  20. private String cisla;
  21. private String morzeovka;
  22. private HashMap<String, String> abeceda,abeceda2;
  23. private ArrayList<String> vystupy;
  24.  
  25. public Program() {
  26. sc = new Scanner(System.in);
  27. abeceda = new HashMap();
  28. abeceda2 = new HashMap();
  29. naplnAbecedu();
  30. while(sc.hasNext()){
  31. vstup = sc.nextLine();
  32. cisla = "";
  33. morzeovka="";
  34. morzeovka += doMorzeovky();
  35. vystupy= new ArrayList();
  36. vystupy.add(zMorzeovky());
  37. }
  38. vypis();
  39.  
  40. }
  41.  
  42. private void naplnAbecedu() {
  43. abeceda.put("A", ".-");
  44. abeceda2.put(".-", "A");
  45.  
  46. abeceda2.put("-...", "B");
  47. abeceda.put("B", "-...");
  48.  
  49. abeceda2.put("-.-.", "C");
  50. abeceda.put("C", "-.-.");
  51.  
  52. abeceda2.put("-..", "D");
  53. abeceda.put("D", "-..");
  54.  
  55. abeceda2.put(".", "E");
  56. abeceda.put("E", ".");
  57.  
  58. abeceda2.put("..-.", "F");
  59. abeceda.put("F", "..-.");
  60.  
  61. abeceda2.put("--.", "G");
  62. abeceda.put("G", "--.");
  63.  
  64. abeceda2.put("....", "H");
  65. abeceda.put("H", "....");
  66.  
  67. abeceda2.put("..", "I");
  68. abeceda.put("I", "..");
  69.  
  70. abeceda2.put(".---", "J");
  71. abeceda.put("J", ".---");
  72.  
  73. abeceda2.put("-.-", "K");
  74. abeceda.put("K", "-.-");
  75.  
  76. abeceda2.put(".-..", "L");
  77. abeceda.put("L", ".-..");
  78.  
  79. abeceda2.put("--", "M");
  80. abeceda.put("M", "--");
  81.  
  82. abeceda2.put("-.", "N");
  83. abeceda.put("N", "-.");
  84.  
  85. abeceda2.put("---", "O");
  86. abeceda.put("O", "---");
  87.  
  88. abeceda2.put(".--.", "P");
  89. abeceda.put("P", ".--.");
  90.  
  91. abeceda2.put("--.-", "Q");
  92. abeceda.put("Q", "--.-");
  93.  
  94. abeceda2.put(".-.", "R");
  95. abeceda.put("R", ".-.");
  96.  
  97. abeceda2.put("...", "S");
  98. abeceda.put("S", "...");
  99.  
  100. abeceda2.put("-", "T");
  101. abeceda.put("T", "-");
  102.  
  103. abeceda2.put("..-", "U");
  104. abeceda.put("U", "..-");
  105.  
  106. abeceda2.put("...-", "V");
  107. abeceda.put("V", "...-");
  108.  
  109. abeceda2.put(".--", "W");
  110. abeceda.put("W", ".--");
  111.  
  112. abeceda2.put("-..-", "X");
  113. abeceda.put("X", "-..-");
  114.  
  115. abeceda2.put("-.--", "Y");
  116. abeceda.put("Y", "-.--");
  117.  
  118. abeceda2.put("--..", "Z");
  119. abeceda.put("Z", "--..");
  120.  
  121. abeceda2.put("..--", "_");
  122. abeceda.put("_", "..--");
  123.  
  124. abeceda2.put(".-.-", ",");
  125. abeceda.put(",", ".-.-");
  126.  
  127. abeceda2.put("---.", ".");
  128. abeceda.put(".", "---.");
  129.  
  130. abeceda2.put("----", "?");
  131. abeceda.put("?", "----");
  132. }
  133.  
  134. private String doMorzeovky() {
  135. StringBuilder morzeovka = new StringBuilder("");
  136.  
  137. for (int i = 0; i < vstup.length(); i++) {
  138. String pom = ""+vstup.charAt(i);
  139. String znak = abeceda.get(pom);
  140. morzeovka.append(znak);
  141. cisla += (char) znak.length();
  142. }
  143.  
  144. return morzeovka.toString();
  145. }
  146.  
  147. private String zMorzeovky() {
  148. String vystup = "";
  149. int index = 0;
  150. int velkost;
  151. for (int i = cisla.length() - 1; i >= 0; i--) {
  152. velkost = (int) cisla.charAt(i);
  153. String pom = morzeovka.substring(index, index += velkost);
  154.  
  155. vystup += abeceda2.get(pom);
  156. }
  157. return vystup;
  158. }
  159.  
  160. private void vypis() {
  161. for (String string : vystupy) {
  162. System.out.println(string);
  163. }
  164. }
  165. }
  166.