2015-10-20 47 views
-2

我在這裏定義的價格:解析將翻一番,忽略字母和空格

lblPrisGrill.Text = "20,00 ,-"; // Grill 
lblPrisWiener.Text = "25,00 ,-"; // Wiener 
lblPrisBacon.Text = "35,00 ,-"; // Bacon 
lblPrisOst.Text = "30,00 ,-"; // Oste 

我分析價格從字符串翻番(號碼):

if (rbGrill.Checked == true) 
    PrisMeny = double.Parse(lblPrisGrill.Text); 

else if (rbWiener.Checked == true) 
    PrisMeny = double.Parse(lblPrisWiener.Text); 

else if (rbBacon.Checked == true) 
    PrisMeny = double.Parse(lblPrisBacon.Text); 

else if (rbOst.Checked == true) 
    PrisMeny = double.Parse(lblPrisOst.Text); 

我想知道我是怎麼只能得到數字"##,##"並忽略" ,-"

我知道存在資源解釋這一點,但我想知道如果我有多個任務,並看看如何完成這將是如何。

回答

0

您可以簡單地使用String.Replace移除部分:

string s = "20,00 ,-"; 

double d = double.Parse(s.Replace(",-", "")); 
Console.WriteLine(d); // 20.0 
+1

爲什麼不包括空間這樣你就不需要調用修剪 – Sorceri

+0

@Sorceri我想擺脫任何空白的,因爲這似乎是用戶輸入的,但事實證明,那'雙。 Parse'處理數字周圍的空白。 (也不包括那裏的空間確保如果在稍後的某個點忘記空間時替換不會失敗) – poke

0

您可以使用正則表達式找到匹配的表達式。我創建了this dotnet小提琴來演示您的場景。您可以檢查小提琴中的輸出。附上代碼以供參考。

using System; 
using System.Text.RegularExpressions; 

public class Program 
{ 
    public static void Main() 
    { 
     var text = "200,001 ,-"; 

     var regex = new Regex(@"\d\d*,\d\d*"); 
     foreach(var match in regex.Matches(text)) 
     { 
      Console.WriteLine(match.ToString()); 
     } 

    } 
}