我试图解析字符串的前三个字符.
public List<string> sortModes(List<string> allModesNonSorted)
{
foreach (string s in allModesNonSorted)
{
char firstNumber = s[0];
char secondNumber = s[1];
char thirdNumber = s[2];
char.IsDigit(firstNumber);
char.IsDigit(secondNumber);
char.IsDigit(thirdNumber);
combinedNumbers = Convert.ToInt16(firstNumber) + Convert.ToInt16(secondNumber) + Convert.ToInt16(thirdNumber);
}
return allModesNonSorted;
}
Run Code Online (Sandbox Code Playgroud)

它正确识别每个字符,但增加了额外的值53或55.下面我添加数字时,包括53和55.为什么这样做?
53是Unicode值'5',55是Unicode值'7'.它向您显示数据的数字和字符版本.
你会注意到secondNumber你看到二进制值0和字符值'\ 0'.
如果要将字符串解释为整数,可以使用
int myInteger = int.Parse(myString);
Run Code Online (Sandbox Code Playgroud)
特别是如果你知道你总是有格式
input = "999 Hz Bla bla"
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
int firstSeparator = input.IndexOf(' ');
string frequency = input.Substring(firstSeparator);
int numericFrequency = int.Parse(frequency);
Run Code Online (Sandbox Code Playgroud)
只要数字后跟空格字符,无论频率中有多少位数,这都可以工作.