c# 字符串移位
例如,现有一个字符串“123456789abcdefg”在textbox1里输入13a,在textbox里转换为25d即:第一个字符串向右移一位,第二个字符串移二位,第二...
例如,现有一个字符串“123456789abcdefg”
在textbox1里输入13a,在textbox里转换为25d
即:第一个字符串向右移一位,第二个字符串移二位,第二个字符串移三位,以此类推 展开
在textbox1里输入13a,在textbox里转换为25d
即:第一个字符串向右移一位,第二个字符串移二位,第二个字符串移三位,以此类推 展开
1个回答
展开全部
假设输入的是末尾的字符呢?是否允许循环(首尾相连),即输入efg 转为f13
追问
是的,首尾相连,求代码
追答
// 算法如下:
static string Encrypt(string plainText, string keyValue)
{
int len = keyValue.Length - 1;
int _moveIndex = 0;
string _result = string.Empty;
for (int i =0; i <plainText.Length; i++)
{
_moveIndex = keyValue.LastIndexOf(plainText[i]) + i + 1 > len ?
((keyValue.LastIndexOf(plainText[i]) + i + 1) % len) - 1 :
(keyValue.LastIndexOf(plainText[i]) + i + 1) % len;
_result += keyValue.Substring(_moveIndex, 1);
}
return _result;
}
static void Main(string[] args)
{
Console.WriteLine(Encrypt("13a", "123456789abcdefg"));
Console.WriteLine(Encrypt("efg", "123456789abcdefg"));
Console.ReadKey(true);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询