C#:使用数组将字符串(或用户输入)拆分为单个字符?

时间:2010-09-19 23:18:05

标签: c# arrays

好的,这就是我想要做的事情。提示用户输入一个8位数字(7个数字加一个连字符

781-0432

我希望它将它分开并将其存储到8个单独的char变量中,而不使用数组:

a = 7 b = 8 c = 1 ... h = 2

我一直在尝试使用Console.Read()方法:

a = Console.Read(); b = Console.Read(); 等

问题是,我不知道如何键入Console.Read()以便在此之后停止阅读。如果模块包含在循环中,则在下次调用时似乎不会重置。

我知道你在想什么。你为什么不使用数组或拆分到char数组选项?好吧,因为它是一个非常具体的家庭作业,希望你完成它。这是第一个让我久违的人。有什么见解吗?

3 个答案:

答案 0 :(得分:3)

它已经是一个数组(好吧,有点*)!

您可以使用字符串上的索引器访问每个单独的字符。例如:

string str = "781-0432"; // To take input, you can use Console.ReadLine()
char firstChar = str[0];
char secondChar = str[1];
// etc

*从技术上讲,string不是数组,但它有一个自定义索引器,可以像char[]一样使用。

答案 1 :(得分:1)

public char ReadChar()
{
   char r = ' ';
   while (r < '0' || r > '9')
      r = Console.ReadKey();
   return r;
}

a = ReadChar();
b = ReadChar();
//...

答案 2 :(得分:0)

如何将您的角色存储在稍后可以检索的POCO中?

public void SomeEvent()
{
    string PhoneNumber = "781-0432"
    Alphabet alphabet = SplitNumber(PhoneNumber);
    // Pass the alphabet object around and maintain the individual characters!
}

public Alphabet SplitNumber(string number)
{
    Alphabet alphabet = new Alphabet();
    alphabet.a = number[0];
    alphabet.b = number[1];
    alphabet.c = number[2];
    alphabet.d = number[3];
    alphabet.e = number[4];
    alphabet.f = number[5];
    alphabet.g = number[6];
    alphabet.h = number[7];
    return alphabet;
}

class Alphabet
{
    public string a;
    public string b;
    public string c;
    public string d;
    public string e;
    public string f;
    public string g;
    public string h;
}

现在,您可以在应用中移动Alphabet并维护单个字符。