簡體   English   中英

解析字母C#中的數字數據

[英]Parse Number Data from Letters C#

我正在嘗試解析從我創建的arduino機器人獲取的數據。 我目前已經啟動並運行了串行程序,並且能夠監視計算機發送和接收的數據。

我試圖從機器人獲取的數據包括:速度,范圍和航向。 從arduino發送的數據是float。

我使用單個字符來表示S,R或H接收到的數據是什么。例如:R150.6

這將表示這是范圍數據,而150.6將是用於更新程序的新范圍。

我有點想找出使用​​c#解析此內容的最佳方法,因為這是我的第一個c#程序。

我嘗試使用類似的代碼來:

if (RxString[0] == 'R')
            Range = double.Parse(RxString);

我在網站上閱讀了使用正則表達式的信息,但是我很難弄清楚如何將其合並到我的代碼中。

這是我用來指導的鏈接:

字符串解析,提取數字和字母

你快到了。 如果您始終以單個字母開頭,請嘗試Range = double.Parse(RxString.Substring(1)) 它將從第二個字符開始讀取。

我可以使用正則表達式查找雙:

\d+([,\.]\d+)?

使用:

Regex re = Regex.Match("R1.23", "\d+([,\.]\d+)?");
if (re.Success)
{
     double @double = Convert.ToDouble(re.Value, System.Globalization.CultureInfo.InvariantCulture);
}

如果您的字母在字符串中遷移或添加其他符號,則保證從字符串中獲取第一個小數

由於您知道返回數據的格式,因此可以嘗試執行以下操作

data = RxString.SubString(0,1);
value = RxString.SubString(1, RxString.Length-1);

if(data == "R")
  range = double.Parse(value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM