/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main
(String[] args
) {
System.
out.
println("Converted \"fishing\" to " + replaceDtmf
("fishing")); System.
out.
println("Converted \"kidneys\" to " + replaceDtmf
("kidneys")); System.
out.
println("Converted \"1-800-AWESOME\" to " + replaceDtmf
("1-800-AWESOME")); }
private static final char[] keys = {
'2', '2', '2', // A B C
'3', '3', '3', // D E F
'4', '4', '4', // G H I
'5', '5', '5', // J K L
'6', '6', '6', // M N O
'7', '7', '7', '7', // P Q R S
'8', '8', '8', // T U V
'9', '9', '9', '9' // W X Y Z
};
{
if (str == null || str.isEmpty()) {
return str;
}
str = str.toUpperCase();
StringBuilder result = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
int index = str.charAt(i) - 'A';
if (index >= 0 && index < keys.length) {
result.append( keys[ index ] );
}
else {
result.append( str.charAt(i) );
}
}
return result.toString();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKQogICAgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29udmVydGVkIFwiZmlzaGluZ1wiIHRvICIgKyByZXBsYWNlRHRtZigiZmlzaGluZyIpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvbnZlcnRlZCBcImtpZG5leXNcIiB0byAiICsgcmVwbGFjZUR0bWYoImtpZG5leXMiKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb252ZXJ0ZWQgXCIxLTgwMC1BV0VTT01FXCIgdG8gIiArIHJlcGxhY2VEdG1mKCIxLTgwMC1BV0VTT01FIikpOwogICAgfQoKICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNoYXJbXSBrZXlzID0gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzInLCAnMicsICcyJywgICAgICAvLyBBIEIgQwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzMnLCAnMycsICczJywgICAgICAvLyBEIEUgRgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzQnLCAnNCcsICc0JywgICAgICAvLyBHIEggSQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzUnLCAnNScsICc1JywgICAgICAvLyBKIEsgTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzYnLCAnNicsICc2JywgICAgICAvLyBNIE4gTwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzcnLCAnNycsICc3JywgJzcnLCAvLyBQIFEgUiBTCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOCcsICc4JywgJzgnLCAgICAgIC8vIFQgVSBWCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOScsICc5JywgJzknLCAnOScgIC8vIFcgWCBZIFoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwoKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlcGxhY2VEdG1mKFN0cmluZyBzdHIpCiAgICB7CiAgICAgICAgaWYgKHN0ciA9PSBudWxsIHx8IHN0ci5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgcmV0dXJuIHN0cjsKICAgICAgICB9CgogICAgICAgIHN0ciA9IHN0ci50b1VwcGVyQ2FzZSgpOwogICAgICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICBpbnQgaW5kZXggPSBzdHIuY2hhckF0KGkpIC0gJ0EnOwogICAgICAgICAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IGtleXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCBrZXlzWyBpbmRleCBdICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCBzdHIuY2hhckF0KGkpICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKICAgIH0KfQ==