2010-09-19 85 views
1

好吧,這是我即將做的事情。用戶被提示輸入一個8位的數字(7個數字加上一個連字符C#:在沒有使用數組的情況下將字符串(或用戶輸入)拆分爲單個字符?

781-0432

我希望它分開打破它並將其存儲到8個單獨的字符變量,而無需使用一個數組:

一個= 7 b = 8 C = 1 ... H = 2

的Ive試圖與Console.Read()方法來做到這一點:

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

問題是,我不知道如何鍵入Console.Read()停止閱讀之後。如果模塊包含在一個循環中,它似乎不會在下一次呼叫時重置。

我知道你在想什麼。爲什麼你會不會使用數組或分割字符數組選項?那麼因爲這是一項非常具體的家庭作業,它希望你能夠完成它。這是我第一次在一段時間內把我絆倒了。任何見解?

+0

你能詳細說明你的意思嗎?「如果模塊包含在一個循環中,似乎不會在下一次調用時重置。」? – 2010-09-19 23:21:05

+0

@kirk:它很難描述。當你第一次使用Console.Read()時,它會提示你輸入。隨着Read()方法的每次使用,只要原始提示中還有尚未讀取的字符,它就不會提示您;所以它會只讀下一個字符,而不是再次提示你。所以如果我有某種突破語句,如果第四個位置不是連字符' - '會引發錯誤,那麼程序會問我一個新的電話號碼,然後返回去嘗試驗證它,但是,而不是Read()方法從第一個位置開始 – Sinaesthetic 2010-09-19 23:52:34

+0

n,它將從第5個位置開始,因爲它沒有完成原始條目,無論它現在是否有新條目。它真的很凌亂 – Sinaesthetic 2010-09-19 23:53:12

回答

3

它已經是一個數組(好,有點*)!

您可以通過在字符串上使用索引器來訪問每個單獨的字符。例如:

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

*技術上一個string不是一個數組,但它有一個自定義的索引,讓它可以像一個char[]使用。

+0

我決定與這一個去感謝!它解決了。成品是最複雜的垃圾片,但它遵循準則,所以即時內容:) – Sinaesthetic 2010-09-20 02:19:14

+3

@Sinaesthetic如果你喜歡這個答案,你應該標記你的問題,通過點擊複選標記回答。 – ahsteele 2010-09-20 03:15:49

+2

標記答案是鼓勵社區的好方法。 – 2010-10-07 17:07:36

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

a = ReadChar(); 
b = ReadChar(); 
//... 
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和維護單個字符。

+0

偷偷摸摸,但可怕。 – 2010-09-19 23:39:07

+0

我使用telerik轉換器從VB轉換。對不起,如果有點關閉。 – 2010-09-19 23:39:25

+0

如果它總是那8個字符,那麼這工作得很好。我更關心的是將它保存爲可以稍後使用的類對象的功能。 – 2010-09-19 23:40:59

相關問題