【发布时间】:2013-12-05 05:40:32
【问题描述】:
所以我正在尝试编写一个程序,该程序接受一个字符串 (str) 并将其转换为北约音标 (newSentence)。
这是我尝试过的:
newSentence = str.toLowerCase().replace("a", "Alpha ")
.replace("b", "Bravo ")
.replace("c", "Charlie ")
.replace("d", "Delta ")
.replace("e", "Echo ")
.replace("f", "Foxtrot ")
.replace("g", "Golf ")
.replace("h", "Hotel ")
.replace("i", "India ")
.replace("j", "Juliet ")
.replace("k", "Kilo ")
.replace("l", "Lima ")
.replace("m", "Mike ")
.replace("n", "November ")
.replace("o", "Oscar ")
.replace("p", "Papa ")
.replace("q", "Quebec ")
.replace("r", "Romeo ")
.replace("s", "Sierra ")
.replace("t", "Tango ")
.replace("u", "Uniform ")
.replace("v", "Victor ")
.replace("w", "Whiskey ")
.replace("x", "X-Ray ")
.replace("y", "Yankee ")
.replace("z", "Zulu ");
但是,这显然行不通,因为在将每个“a”替换为“Alpha”之后,它会使用每个“l”“p”和“h”并重新转换它们等等。有没有办法一次转换所有的字母,这样就不会发生这种情况,并提高效率?
【问题讨论】:
-
也许不是多次调用
replace,您可以遍历每个字符并根据您的输入字符串构建一个完全new字符串