2015-10-27 189 views
-2

我想跳過字符之間的空白區域。例如,我有這樣的:通過閱讀字符跳過空白

abc def ghi,則輸出必須是:

a = 1 
b = 1 
c = 1..etc 

,但現在我得到:

"" = 2. 

因爲有人物之間有兩個空格。

我嘗試這樣的:

SortedDictionary<char, int> dictionary = new SortedDictionary<char, int>(); 

Console.WriteLine("Enter a string: "); // prompt for user input 
string input = Console.ReadLine(); // get input 

// split input text into tokens 
char[] letters = Regex.Split(input.ToCharArray().ToString(), @"\s+"); 
+0

'Regex.Split'返回一個字符串'[]'不是'的char []'。如果你想要一個字符串中的所有字符,那麼你需要'char [] letters = input.ToArray()'。你只是想計算'string'中每個字符有多少個?你可以給你一個完整的預期輸出爲你的輸入。 – juharr

+0

你想跳過空格。那麼'a = 1','b = 1'是什麼?對不起,但我沒有得到它 –

回答

5

剛剛從你的陣列忽略空格:

using System.Linq; 

// Your other code 
char[] letters = input.Where(c => c != ' ').ToArray(); 

一個字符串,本質上是一種char陣列,所以你不需要用它投那個電話。

+0

謝謝,但後來我會得到這個錯誤:1 \t不能隱式地將類型'char []'轉換爲'char' – InfinityGoesAround

+0

你從哪裏得到那個錯誤? 'input.Where()'將返回一個'IEnumerable ',而'.ToArray()'將它變成一個'char []'。您可以隨時將'letters'的類型改爲'var'。 – krillgar

+0

啊,是的。謝謝!! – InfinityGoesAround

0

如果你想匹配模式的分裂:

var pattern = @"\s+"; 
char[] letters = Regex.Split(input, pattern).Aggregate(String.Concat).ToCharArray();