C# 我必须找到一个隐藏在3行文字中的4位PIN码

C# 我必须找到一个隐藏在3行文字中的4位PIN码,c#,string,visual-studio,character,pin-code,C#,String,Visual Studio,Character,Pin Code,第一行是长度大于4的文本,仅由0到9的数字组成 第二行编码文本中隐藏的Pin码开始的索引。可能值​​是字母a、b或c,a表示起始索引为0,b表示起始索引为1,c表示起始索引为2 第三行是一个数字,指示我们需要从第一行(从上面指定的起始索引开始)的文本中跳过多少字符才能发现PIN码的4位数字 如果我输入123456789,a,2=>我应该得到1357的结果…但是我的结果是=>100108 你能给我一些建议吗?:) 尝试将其分成4个作业或一个循环 using System; namespace H

第一行是长度大于4的文本,仅由0到9的数字组成

第二行编码文本中隐藏的Pin码开始的索引。可能值​​是字母a、b或c,a表示起始索引为0,b表示起始索引为1,c表示起始索引为2

第三行是一个数字,指示我们需要从第一行(从上面指定的起始索引开始)的文本中跳过多少字符才能发现PIN码的4位数字

如果我输入123456789,a,2=>我应该得到1357的结果…但是我的结果是=>100108


你能给我一些建议吗?:)

尝试将其分成4个作业或一个循环

using System;

namespace HiddenMessageC

{

    class Program

    {
        static void Main(string[] args)
        {
            string encodedPinNumber = Console.ReadLine();
            string startPostionString = Console.ReadLine();
            int step = Convert.ToInt32(Console.ReadLine());

            string pin = "";
            int startPostion = startPostionString[0] - 'a';
            pin += encodedPinNumber[startPostion] + encodedPinNumber[startPostion + step];
            pin += encodedPinNumber[startPostion + 2 * step] + encodedPinNumber[startPostion + 3 * step];

            Console.WriteLine(pin);
            Console.Read();
        }
    }
}
正在做我假定的事情:添加char值

‘1’=49,‘3’=51,等于100

‘5’=53,‘7’=55,得108


或者使用子字符串而不是使用字符串作为字符数组。

正如Turo所说,当您使用索引访问字符串时,它将返回
char
。当两个
char
字段执行
+
操作时,它们将自动转换为
int

所以试着用它来获得一个单独的角色

encodedPinNumber[startPostion] + encodedPinNumber[startPostion + step]
或者将所有字符存储在列表中,然后使用索引访问它们

pin += encodedPinNumber.Substring(startPostion, 1) + encodedPinNumber.Substring(startPostion + step, 1);
pin += encodedPinNumber.Substring(startPostion + 2 * step, 1) + encodedPinNumber.Substring(startPostion + 3 * step, 1);
List-stringlist=encodedPinNumber.Select(c=>c.ToString()).ToList();
引脚+=stringlist[StartPosition]+stringlist[StartPosition+step];
引脚+=stringlist[StartPosition+2*步]+stringlist[StartPosition+3*步];

我现在明白了,非常感谢!:)在您的第一个代码中,startPostion后面的1是什么意思。我的意思是:(startPostion,1)或(startPostion+step,1)那是什么它是子字符串的长度?@BodorArianna是的,它是子字符串中的字符数。再次感谢你!:)你能帮我查一下这个密码吗?
List<string> stringlist = encodedPinNumber.Select(c => c.ToString()).ToList();

pin += stringlist[startPostion] + stringlist[startPostion + step];
pin += stringlist[startPostion + 2 * step] + stringlist[startPostion + 3 * step];