【发布时间】:2014-06-19 18:59:51
【问题描述】:
我正在尝试将一个字母转换为其字母数字顺序,例如,如果我有一个“A”,它会给我 00 或一个“C”02
如何在 c# 中编写代码?
编辑:这是我尝试过的
我创建了这个类:
public class AlphabetLetter
{
public char Letter {get; set;}
public int Rank {get; set;}
}
这两个列表:
public List<char> Letters = new List<char> {
'a' ,'b' ,'c' ,'d' ,'e', 'f' ,'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm',
'n' ,'o' ,'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' , 'w' , 'x' , 'y' , 'z'
};
public List<int> Ranks = new List<int> {
00,01,02,04,05,06,07,08,09,10,11,12,13,
14,15,16,17,18,19,20,21,22,23,24,25
};
public List<AlphabetLetter> Alphabet = new List<AlphabetLetter>( );
我在构造函数中创建了字母:
for (int i = 0; i < 25; i++)
{
Alphabet.Add(new AlphabetLetter { Rank = Ranks[i], Letter = Letters[i] });
并试图用这个函数匹配一个字符:
public int Numberize(char Letter)
{
if (Letter != null)
{
foreach (AlphabetLetter _letter in Alphabet)
{
if (Letter == _letter.Letter)
{
return _letter.Rank;
}
else
{
return 896;
}
}
}
else {
return 999;
}
}
}
但是这种方法行不通,而且太繁琐。
有什么建议吗?
【问题讨论】:
-
通过破坏您友好的 IDE 并自己编写一些代码。试试看。然后,如果您有问题,请提出问题。
-
是的,我已经尝试了一些代码,但它不起作用,我将在编辑时发布它
-
当然,这是非常基本的。话虽如此,并不是每个新程序员(尤其是如果他们没有上过学)都会认识到字符只是表格中的数字。
-
该代码必须是我见过的尝试解决此问题的最复杂的方法。只需利用答案中的 ASCII 表即可:)
-
@user2505650 好的。所以我现在进行了测试 - 你必须在
foreach的右括号之后添加return 896;。没有else { }。并且输入只能是小写字母。经测试。作品。您还必须在Ranks中添加03。并将初始化中的25改成26。
标签: c#