Source code for submission s517

Fs.java

  1. //package fs;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.HashMap;
  7. import java.util.*;
  8.  
  9.  
  10. /**
  11.  *
  12.  * @author cteam039
  13.  */
  14. public class Fs {
  15.  
  16. public static Map<String, String> morse = new HashMap<String, String>();
  17. public static Map<String, String> alphabet = new HashMap<String, String>();
  18. public static final String[][] data = {
  19. {"A", ".-"},
  20. {"B", "-..."},
  21. {"C", "-.-."},
  22. {"D", "-.."},
  23. {"E", "."},
  24. {"F", "..-."},
  25. {"G", "--."},
  26. {"H", "...."},
  27. {"I", ".."},
  28. {"J", ".---"},
  29. {"K", "-.-"},
  30. {"L", ".-.."},
  31. {"M", "--"},
  32. {"N", "-."},
  33. {"O", "---"},
  34. {"P", ".--."},
  35. {"Q", "--.-"},
  36. {"R", ".-."},
  37. {"S", "..."},
  38. {"T", "-"},
  39. {"U", "..-"},
  40. {"V", "...-"},
  41. {"W", ".--"},
  42. {"X", "-..-"},
  43. {"Y", "-.--"},
  44. {"Z", "--.."},
  45. {"_", "..--"},
  46. {",", ".-.-"},
  47. {".", "---."},
  48. {"?", "----"}};
  49.  
  50. public static void main(String[] args) {
  51.  
  52. for (int i = 0; i < data.length; i++) {
  53. morse.put(data[i][0], data[i][1]);
  54. alphabet.put(data[i][1], data[i][0]);
  55. }
  56. while (true) {
  57. String input;
  58. try {
  59. input = reader.readLine();
  60. } catch (IOException ex) {
  61. return;
  62. }
  63.  
  64. if(input == null){
  65. return;
  66. }
  67.  
  68. StringBuilder builder = new StringBuilder(1000);
  69. int [] numbers = new int[input.length()];
  70. for (int i = 0; i < input.length(); i++) {
  71. String ch = String.valueOf(input.charAt(i));
  72. numbers[i] = morse.get(ch).length();
  73. builder.append(morse.get(ch));
  74.  
  75. }
  76.  
  77. String code = builder.toString();
  78.  
  79. int progress = 0;
  80. builder = new StringBuilder(1000);
  81.  
  82. for (int i = numbers.length - 1; i >=0; i--){
  83.  
  84. String letter = code.substring(progress, progress + numbers[i]);
  85. progress += numbers[i];
  86. builder.append(alphabet.get(letter));
  87. }
  88. System.out.println(builder.toString());
  89.  
  90. }
  91. }
  92. }
  93.