Source code for submission s642

Fs.java

  1. import java.util.Scanner;
  2.  
  3. import javax.swing.Box.Filler;
  4.  
  5.  
  6. public class Fs {
  7.  
  8. static char [] chars = new char[30];
  9. static String [] morse = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", "..--", ".-.-", "---.", "----"};
  10.  
  11. public static String input;
  12. public static String morsed = "";
  13. public static String morsedInNumbers = "";
  14. public static String demorsedFinal = "";
  15.  
  16. public static StringBuilder sb;
  17.  
  18. public static void main(String[] args) {
  19. fillChars();
  20.  
  21.  
  22. Scanner sc = new Scanner(System.in);
  23.  
  24. while (sc.hasNextLine()) {
  25. sb = new StringBuilder();
  26. morsed = "";
  27. demorsedFinal = "";
  28. morsedInNumbers = "";
  29.  
  30. input = sc.nextLine();
  31.  
  32. toMorse();
  33.  
  34. sb.append(morsedInNumbers);
  35. sb.reverse();
  36.  
  37. morsedInNumbers = sb.toString();
  38.  
  39. demorse();
  40.  
  41. System.out.println(demorsedFinal);
  42. }
  43. }
  44.  
  45. public static void fillChars(){
  46. for(int i = 0; i < 26; i++){
  47. chars[i] = (char)(65 + i);
  48. }
  49. chars[26] = '_';
  50. chars[27] = ',';
  51. chars[28] = '.';
  52. chars[29] = '?';
  53. }
  54.  
  55. public static void toMorse(){
  56. for(int i = 0; i < input.length(); i++){
  57.  
  58. int indexNumber;
  59.  
  60. if (input.charAt(i) >= 65) {
  61. indexNumber = input.charAt(i) - 65;
  62. if (indexNumber < 26) {
  63. morsed = morsed + morse[indexNumber];
  64. morsedInNumbers = morsedInNumbers + morse[indexNumber].length();
  65. }
  66. } else if (input.charAt(i) == '_') {
  67. morsed = morsed + morse[26];morsedInNumbers = "";
  68. morsedInNumbers = morsedInNumbers + morse[26].length();
  69. } else if (input.charAt(i) == ',') {
  70. morsed = morsed + morse[27];
  71. morsedInNumbers = morsedInNumbers + morse[27].length();
  72. } else if (input.charAt(i) == '.') {
  73. morsed = morsed + morse[28];
  74. morsedInNumbers = morsedInNumbers + morse[28].length();
  75. } else {
  76. morsed = morsed + morse[29];
  77. morsedInNumbers = morsedInNumbers + morse[29].length();
  78. }
  79. }
  80.  
  81. }
  82.  
  83. public static char toChar(String morseChar){
  84. for(int i = 0; i < 30; i++){
  85. if(morseChar.equals(morse[i]))
  86. return chars[i];
  87. }
  88.  
  89. return 0;
  90. }
  91.  
  92. public static void demorse(){
  93. int inStart = 0;
  94.  
  95. for(int i = 0; i < morsedInNumbers.length(); i++){
  96. int part = Character.getNumericValue(morsedInNumbers.charAt(i));
  97. demorsedFinal += toChar(morsed.substring(inStart, inStart + part));
  98. inStart += part;
  99. }
  100. }
  101.  
  102. }
  103.