Fs.java
//package fs;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.*;
/**
*
* @author cteam039
*/
public class Fs {
public static Map
<String, String
> morse
= new HashMap
<String, String
>(); public static Map
<String, String
> alphabet
= new HashMap
<String, String
>(); public static final String[][] data
= { {"A", ".-"},
{"B", "-..."},
{"C", "-.-."},
{"D", "-.."},
{"E", "."},
{"F", "..-."},
{"G", "--."},
{"H", "...."},
{"I", ".."},
{"J", ".---"},
{"K", "-.-"},
{"L", ".-.."},
{"M", "--"},
{"N", "-."},
{"O", "---"},
{"P", ".--."},
{"Q", "--.-"},
{"R", ".-."},
{"S", "..."},
{"T", "-"},
{"U", "..-"},
{"V", "...-"},
{"W", ".--"},
{"X", "-..-"},
{"Y", "-.--"},
{"Z", "--.."},
{"_", "..--"},
{",", ".-.-"},
{".", "---."},
{"?", "----"}};
public static void main
(String[] args
) {
for (int i = 0; i < data.length; i++) {
morse.put(data[i][0], data[i][1]);
alphabet.put(data[i][1], data[i][0]);
}
while (true) {
try {
input = reader.readLine();
return;
}
if(input == null){
return;
}
StringBuilder builder = new StringBuilder(1000);
int [] numbers = new int[input.length()];
for (int i = 0; i < input.length(); i++) {
numbers[i] = morse.get(ch).length();
builder.append(morse.get(ch));
}
String code
= builder.
toString();
int progress = 0;
builder = new StringBuilder(1000);
for (int i = numbers.length - 1; i >=0; i--){
String letter
= code.
substring(progress, progress
+ numbers
[i
]); progress += numbers[i];
builder.append(alphabet.get(letter));
}
System.
out.
println(builder.
toString());
}
}
}