我正在开发一个小应用程序,我给它一些字符串“MRUGDQ”和一个移位值3。然后我将每个字母向左移3,结果将是“JORDAN”。例如,window.onload = $(function() {
$(".element").typed({
strings: ['Are you down with the movement(Y/N)?'],
typeSpeed: 150
});
setTimeout(function() {
$(".element").editableDiv();
}, 1000)
});
将替换为M
,而J
将替换为R
,依此类推。
所以现在这是我想要使用的方法,但我想知道这是否有效并且我可以改进我的解决方案吗?
我做出的假设:
我假设我的字符串将是大写字母A到Z字母或小a到z字母,因此ascii范围分别是65到90和97到122.
Pesudo Code
将shift值添加到char ascii值
O
如果我的方法正确或我的效率更高,请告诉我。
答案 0 :(得分:2)
除了你对新char的处理超出范围之外,我没有看到太多改进。
如果您希望将重叠量“滚动”回到范围的开头,而不仅仅计算:(x % 90) + 64
(*)(添加移位值后x
为ascii值)。
示例:
'Y' (89) + 3 = '\' 92
92 % 90 = 2
2 + 64 = 'B' (66)
您需要从 64 开始,以避免跳过'A'
,其值 65 。
(*)通用公式为:(value % upper bound) + (lower bound - 1)
。
您也可以使用(value % upper bound + 1) + lower bound
。