我有这个字符串:
com.example.is-this@myname
Run Code Online (Sandbox Code Playgroud)
我希望它是
myname@this-is.example.com
Run Code Online (Sandbox Code Playgroud)
使用.Net,但直接的概念或想法会很好.
我目前正在做的是遍历每个角色,找出它是否是"特殊字符"之一并将所有先前的字符分配给数组的变量,最后,我将它们从最后一个加入到它们中第一.
有没有更有效的方法来做到这一点?
这是经典的逐字反转,在分隔符上有一点点扭曲.这个问题的解决方案是单独反转每个单词,然后反转整个字符串.在翻转单词时不要触摸分隔符.
第一步如下:我们找到每个令牌的限制,并将其反转到位,如下所示:
反转结果以获得所需的输出:
moc.elpmaxe.si-siht@emanym -> myname@this-is.example.com
Run Code Online (Sandbox Code Playgroud)
至于实施的话,你可以通过字符串转换为字符数组,使其在发生改变能改变的,写一个简短的helper方法,可以让你扭转的部分做char索引之间阵列i和j.使用这个辅助方法,您需要做的就是找到分隔符并为每个分隔的单词调用帮助程序,然后进行最后一次调用以反转整个句子.
| 归档时间: |
|
| 查看次数: |
340 次 |
| 最近记录: |