Source code for submission s560

FS.java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package fs;
  6.  
  7. import java.io.File;
  8. import java.io.FileNotFoundException;
  9. import java.util.ArrayList;
  10. import java.util.Scanner;
  11. import java.util.TreeMap;
  12.  
  13. /**
  14.  *
  15.  * @author drevenak3
  16.  */
  17. public class FS {
  18.  
  19. /**
  20.   * @param args the command line arguments
  21.   */
  22. public static void main(String[] args) {
  23. // TODO code application logic her
  24. Scanner vst=new Scanner(System.in);
  25. /*try{
  26. vst=new Scanner(new File("in.txt"));
  27. }catch(FileNotFoundException e){}*/
  28. TreeMap<Character,String> Morse=new TreeMap<>();
  29. Morse.put('A', ".-");
  30. Morse.put('B', "-...");
  31. Morse.put('C', "-.-.");
  32. Morse.put('D', "-..");
  33. Morse.put('E', ".");
  34. Morse.put('F', "..-.");
  35. Morse.put('G', "--.");
  36. Morse.put('H', "....");
  37. Morse.put('I', "..");
  38. Morse.put('J', ".---");
  39. Morse.put('K', "-.-");
  40. Morse.put('L', ".-..");
  41. Morse.put('M', "--");
  42. Morse.put('N', "-.");
  43. Morse.put('O', "---");
  44. Morse.put('P', ".--.");
  45. Morse.put('Q', "--.-");
  46. Morse.put('R', ".-.");
  47. Morse.put('S', "...");
  48. Morse.put('T', "-");
  49. Morse.put('U', "..-");
  50. Morse.put('V', "...-");
  51. Morse.put('W', ".--");
  52. Morse.put('X', "-..-");
  53. Morse.put('Y', "-.--");
  54. Morse.put('Z', "--..");
  55. Morse.put('_', "..--");
  56. Morse.put(',', ".-.-");
  57. Morse.put('.', "---.");
  58. Morse.put('?', "----");
  59. TreeMap<String,Character> MorseInv=new TreeMap<>();
  60. MorseInv.put(".-",'A');
  61. MorseInv.put("-...",'B');
  62. MorseInv.put("-.-.",'C');
  63. MorseInv.put("-..",'D');
  64. MorseInv.put(".",'E');
  65. MorseInv.put("..-.",'F');
  66. MorseInv.put("--.",'G');
  67. MorseInv.put("....",'H');
  68. MorseInv.put("..",'I');
  69. MorseInv.put(".---",'J');
  70. MorseInv.put("-.-",'K');
  71. MorseInv.put(".-..",'L');
  72. MorseInv.put("--",'M');
  73. MorseInv.put("-.",'N');
  74. MorseInv.put("---",'O');
  75. MorseInv.put(".--.",'P');
  76. MorseInv.put("--.-",'Q');
  77. MorseInv.put(".-.",'R');
  78. MorseInv.put("...",'S');
  79. MorseInv.put("-",'T');
  80. MorseInv.put("..-",'U');
  81. MorseInv.put("...-",'V');
  82. MorseInv.put(".--",'W');
  83. MorseInv.put("-..-",'X');
  84. MorseInv.put("-.--",'Y');
  85. MorseInv.put("--..",'Z');
  86. MorseInv.put("..--",'_');
  87. MorseInv.put(".-.-",',');
  88. MorseInv.put("---.",'.');
  89. MorseInv.put("----",'?');
  90. while(vst.hasNext()){
  91. String msgEnc=vst.next();
  92. int cisla[]=new int[msgEnc.length()];
  93. StringBuilder msgDec=new StringBuilder();
  94. for(int i=0;i<msgEnc.length();++i){
  95. char c=msgEnc.charAt(i);
  96. String code=Morse.get(c);
  97. msgDec.append(code);
  98. int j=msgEnc.length()-i-1;
  99. cisla[j]=code.length();
  100. }
  101. int zac=0;
  102. for(int i=0;i<msgEnc.length();++i){
  103. String code=msgDec.substring(zac,zac+cisla[i]);
  104. zac+=cisla[i];
  105. char c=MorseInv.get(code);
  106. System.out.print(c);
  107. }
  108. System.out.println();
  109. }
  110. vst.close();
  111. }
  112. }
  113.