C# 通过读取字符跳过空白

C# 通过读取字符跳过空白,c#,C#,我想跳过字符之间的空白。例如,我有: 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 in

我想跳过字符之间的空白。例如,我有:

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+");
SortedDictionary dictionary=新的SortedDictionary();
Console.WriteLine(“输入字符串:”);//提示用户输入
字符串输入=Console.ReadLine();//获取输入
//将输入文本拆分为标记
char[]letters=Regex.Split(input.tocharray().ToString(),@“\s+”);

只需从数组中省略空格即可:

using System.Linq;

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

字符串本质上是一个
char
数组,因此不需要在调用时强制转换它。

如果要通过匹配模式进行拆分:

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

Regex.Split
返回一个
string[]
而不是
char[]
。如果希望字符串中的所有字符,则需要
char[]letters=input.ToArray()
。您只是想计算
字符串中每个字符的数量吗?请为您的输入提供完整的预期输出。您想跳过空格吗。那么什么是
a=1
b=1
?抱歉,我没有得到它谢谢,但是我会得到这个错误:1不能隐式地将类型“char[]”转换为“char”,你从哪里得到这个错误
input.Where()
将返回一个
IEnumerable
,而
.ToArray()
将其转换为
char[]
。您始终可以将
字母的类型改为
var