如何将字母和字母表中的数字换成字符串中的数字?

时间:2018-03-11 07:02:34

标签: c# string

如何将数字转换为其等效的字母字符,并将字母字符转换为字符串中的数字值(0,0应该保持0,原因很明显)

所以基本上如果有一个字符串

string content="D93AK0F5I";

如何将其转换为?

string new_content="4IC11106E9";

3 个答案:

答案 0 :(得分:2)

我假设你知道这不可逆,并且你只使用大写和数字。你去......

    private string Transpose(string input)
    {
        StringBuilder result = new StringBuilder();
        foreach (var character in input)
        {
            if (character == '0')
            {
                result.Append(character);
            }
            else if (character >= '1' && character <= '9')
            {
                int offset = character - '1';
                char replacement = (char)('A' + offset);
                result.Append(replacement);
            }
            else if (character >= 'A' && character <= 'Z') // I'm assuming upper case only; feel free to duplicate for lower case
            {
                int offset = character - 'A' + 1;
                result.Append(offset);
            }
            else
            {
                throw new ApplicationException($"Unexpected character: {character}");
            }
        }

        return result.ToString();
    }

答案 1 :(得分:1)

好吧,如果你只需要一个单向翻译,这是一个非常简单的方法,使用linq:

string convert(string input)
    {
        var chars = "0abcdefghijklmnopqrstuvwxyz";
        return string.Join("", 
                           input.Select(
                               c => char.IsDigit(c) ? 
                               chars[int.Parse(c.ToString())].ToString() : 
                               (chars.IndexOf(char.ToLowerInvariant(c))).ToString())
                           );
    }

You can see a live demo on rextester.

答案 2 :(得分:0)

您可以使用Albhabets的ArrayList。例如

ArrayList albhabets = new ArrayList();
            albhabets.Add("A");
            albhabets.Add("B");

等等。

现在按字符解析字符串。

string s = "1BC34D";
char[] characters = s.ToCharArray();
for (int i = 0; i < characters.Length; i++)
 {
   if (Char.IsNumber(characters[0]))
    {
        var index = characters[0];
        var stringAlbhabet = albhabets[index];
    }
  else
    {
        var digitCharacter = albhabets.IndexOf(characters[0]);
    }
}

通过这种方式,您可以获得数字和数字的“字母”表示。 “Alphabet”的数字表示。