我将数据从arduino发送到c#并出现问题。我从串行读取的值在它的末尾带有一个“\ r”,例如:“19.42 \ r”。我找到了一个解决方案,使用Regex删除我的号码后面的字符。但它也使我的双整数。 “19.42 \ r”变为“1942”。如何删除我的字符串,但仍将值保持为double?
line = Regex.Replace(line, @"[^\d]", string.Empty);
答案 0 :(得分:1)
您想要从字符串末尾修剪空白。
使用
line = line.TrimEnd();
请参阅C# demo
如果你需要从带有正则表达式的字符串中实际提取一个双号,请使用
var my_number = string.Empty;
var match = Regex.Match(line, @"[0-9]+\.[0-9]+");
if (match.Success)
{
my_number = match.Value;
}
如果该号码不能包含小数部分,请使用@"[0-9]*\.?[0-9]+"
正则表达式。
答案 1 :(得分:0)
string data = "19.42\r";
return data.Substring(0, data.Length - 1);
甚至更好
data.TrimEnd('\r')
答案 2 :(得分:0)
如果\ r \ n是您要删除的固定字符
string str = "awdawdaw\r";
str = str.replace("\r","");
如果\ r \ n不是您要删除的固定字符
string str = "awdawdaw\\";
str = str.Substring((str.Length - 2), 2); \\will be removed