簡體   English   中英

如何將數字轉換為字母,將字母轉換為字符串中的數字?

[英]How to exchange numbers to alphabet and alphabet to numbers in a string?

如何將數字轉換為等效的字母字符,以及如何從字符串將其轉換為數值(除了0,出於明顯的原因,0應該保持為0)

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

string content="D93AK0F5I";

如何將其轉換為?

string new_content="4IC11106E9";

我假設您知道這是不可逆的,並且您只使用大寫字母和數字。 干得好...

    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();
    }

好吧,如果您只需要單向翻譯,這是使用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())
                           );
    }

您可以在rextester上觀看現場演示。

您可以使用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]);
    }
}

這樣,您可以獲得數字的“字母”表示和“字母”的數字表示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM