java密码转换_摩斯密码转换-JAVA版

虽说没一丁点技术含量

另分享两个在线转换:http://mathsking.net/morse.htm

http://msjm.yinxiulei.cn/

1.[代码][Java]代码

import java.util.HashMap;

import java.util.Map;

import org.apache.commons.lang3.StringUtils;

/**

*

* @author kute

* @date 2014年10月30日

*/

public class MorseConventer {

/**

* clear text to morse code

* @param text

* @return

*/

public static String toMorse(String text) {

String morseCode = "";

if(!StringUtils.isEmpty(text)) {

text = text.toUpperCase();

String[] textArray = text.split(SPACE_IN_WORD);

for(String word : textArray) {

morseCode += wordToMorseCode(word) + SPACE_BETWEEN_WORD;

}

}

return morseCode.substring(0, morseCode.lastIndexOf(SPACE_BETWEEN_WORD));

}

/**

* morse code to clear text

* @param morseCode

* @return

*/

public static String fromMorse(String morseCode) {

String text = "";

if(!StringUtils.isEmpty(morseCode)) {

String[] codeArray = morseCode.split(SPACE_BETWEEN_WORD);

for(String wordCode : codeArray) {

text += wordFromMorseCode(wordCode) + SPACE_IN_WORD;

}

}

return text.substring(0, text.lastIndexOf(SPACE_IN_WORD)).toLowerCase();

}

private static final String SPACE_IN_WORD = " ";

private static final String SPACE_BETWEEN_WORD = " ";

private static String wordToMorseCode(String word) {

String wordMorseCode = "";

String[] wordArray = word.split("");

for(String letter : wordArray) {

if(!StringUtils.isEmpty(letter)) {

wordMorseCode += MORSE_CODE.get(letter) + SPACE_IN_WORD;

}

}

return wordMorseCode.substring(0, wordMorseCode.lastIndexOf(SPACE_IN_WORD));

}

private static String wordFromMorseCode(String wordMorseCode) {

String word = "";

String[] codeArray = wordMorseCode.split(SPACE_IN_WORD);

for(String code : codeArray) {

for(Map.Entry entry : MORSE_CODE.entrySet()) {

if(entry.getValue().equals(code)) {

word += entry.getKey();

break;

}

}

}

return word;

}

private static final Map MORSE_CODE = new HashMap(){

private static final long serialVersionUID = -8566980021074210328L;

{

put("A", ".-");

put("B", "-...");

put("C", "-.-.");

put("D", "-..");

put("E", ".");

put("F", "..-.");

put("G", "--.");

put("H", "....");

put("I", "..");

put("J", ".---");

put("K", "-.-");

put("L", ".-..");

put("M", "--");

put("N", "-.");

put("O", "---");

put("P", ".--.");

put("Q", "--.-");

put("R", ".-.");

put("S", "...");

put("T", "-");

put("U", "..-");

put("V", "...-");

put("W", ".--");

put("X", "-..-");

put("Y", "-.--");

put("Z", "--..");

put("1", ".----");

put("2", "..---");

put("3", "...--");

put("4", "....-");

put("5", ".....");

put("6", "-....");

put("7", "--...");

put("8", "---..");

put("9", "----.");

put("0", "-----");

put("?", "..--..");

put("/", "-..-.");

put("-", "-...-");

put(".", ".-.-.-");

put("()", "-.--.-");

}

};

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值