98 lines
1.9 KiB
Go
98 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
var all bool
|
|
|
|
flag.BoolVar(&all, "all", false, "reveal the code words of all the letters in the English alphabet.")
|
|
flag.Parse()
|
|
|
|
var input string
|
|
|
|
if all {
|
|
input = fullAlphabet()
|
|
} else {
|
|
args := flag.Args()
|
|
for i := range args {
|
|
input = input + args[i]
|
|
}
|
|
}
|
|
|
|
fmt.Print(phoneticLetters(input))
|
|
}
|
|
|
|
// phoneticLetters returns a string of all the code words for the given set of letters.
|
|
func phoneticLetters(letters string) string {
|
|
letters = strings.ToLower(letters)
|
|
|
|
b := strings.Builder{}
|
|
|
|
for _, r := range letters {
|
|
switch r {
|
|
case 'a':
|
|
b.WriteString("A - Alpha\n")
|
|
case 'b':
|
|
b.WriteString("B - Bravo\n")
|
|
case 'c':
|
|
b.WriteString("C - Charlie\n")
|
|
case 'd':
|
|
b.WriteString("D - Delta\n")
|
|
case 'e':
|
|
b.WriteString("E - Echo\n")
|
|
case 'f':
|
|
b.WriteString("F - Foxtrot\n")
|
|
case 'g':
|
|
b.WriteString("G - Golf\n")
|
|
case 'h':
|
|
b.WriteString("H - Hotel\n")
|
|
case 'i':
|
|
b.WriteString("I - India\n")
|
|
case 'j':
|
|
b.WriteString("J - Juliet\n")
|
|
case 'k':
|
|
b.WriteString("K - Kilo\n")
|
|
case 'l':
|
|
b.WriteString("L - Lima\n")
|
|
case 'm':
|
|
b.WriteString("M - Mike\n")
|
|
case 'n':
|
|
b.WriteString("N - November\n")
|
|
case 'o':
|
|
b.WriteString("O - Oscar\n")
|
|
case 'p':
|
|
b.WriteString("P - Papa\n")
|
|
case 'q':
|
|
b.WriteString("Q - Quebec\n")
|
|
case 'r':
|
|
b.WriteString("R - Romeo\n")
|
|
case 's':
|
|
b.WriteString("S - Sierra\n")
|
|
case 't':
|
|
b.WriteString("T - Tango\n")
|
|
case 'u':
|
|
b.WriteString("U - Uniform\n")
|
|
case 'v':
|
|
b.WriteString("V - Victor\n")
|
|
case 'w':
|
|
b.WriteString("W - Whiskey\n")
|
|
case 'x':
|
|
b.WriteString("X - Xray\n")
|
|
case 'y':
|
|
b.WriteString("Y - Yankee\n")
|
|
case 'z':
|
|
b.WriteString("Z - Zulu\n")
|
|
}
|
|
}
|
|
|
|
return b.String()
|
|
}
|
|
|
|
// fullAlphabet returns a string of all the letters in the alphabet.
|
|
func fullAlphabet() string {
|
|
return "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"
|
|
}
|