繁体   English   中英

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

[英]C#: Split a string (or user input) into individual characters withOUT using an array?

好的,这就是我想要做的事情。 提示用户输入一个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数组选项? 好吧,因为它是一个非常具体的家庭作业,希望你完成它。 这是第一个让我久违的人。 任何见解?

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

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

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

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

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

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

将你的角色存储在稍后可以检索的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并保留单个字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM