c# 字符串移位

例如,现有一个字符串“123456789abcdefg”在textbox1里输入13a,在textbox里转换为25d即:第一个字符串向右移一位,第二个字符串移二位,第二... 例如,现有一个字符串“123456789abcdefg”
在textbox1里输入13a,在textbox里转换为25d
即:第一个字符串向右移一位,第二个字符串移二位,第二个字符串移三位,以此类推
展开
 我来答
仙戈雅3n
2015-08-08 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:904万
展开全部
假设输入的是末尾的字符呢?是否允许循环(首尾相连),即输入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);
        }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式