Last active
August 29, 2015 14:05
-
-
Save brunoborges/5fa58f519dc3c1fb0b24 to your computer and use it in GitHub Desktop.
Nashorn Javascript Code for NATO Converter
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* Author: Bruno Borges | |
* Twitter: @brunoborges | |
*/ | |
if (arguments.length === 0 || arguments[0] === '-h') { | |
print('Usage:'); | |
print(' $> jjs nato.js -- words'); | |
exit(1); | |
} | |
var Collectors=java.util.stream.Collectors; | |
var nw=java.util.Arrays.asList(["Alpha","Bravo","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliet","Kilo", "Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","X-ray","Yankie","Zulu"]); | |
var ni=nw.stream().collect(Collectors.toMap(function(w)new java.lang.Character(w.charAt(0)),function (w)w)); | |
for each (var aWord in arguments) { | |
printNato(aWord); | |
print('---------'); | |
} | |
function wordToNato(word) { | |
var chars=word.toUpperCase().toCharArray(); | |
var nato = new java.util.ArrayList(); | |
for each (var c in chars) { | |
if (java.lang.Character.isDigit(c)) nato.add(java.lang.Character.toString(c)); | |
else nato.add(ni.get(new java.lang.Character(c))); | |
} | |
return nato.stream().collect(Collectors.joining(" ")); | |
} | |
function printNato(word) { | |
print('Word: '+ word); | |
print('NATO: '+ wordToNato(word)); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment