如何在C#中執行此操作?如何在c中執行sscanf#
int a,b,c;
sscanf(astring,"%d %d %d",&a,&b,&c);
最小的代碼和依賴關係是可取的,有一些內置的正則表達式的東西?
我使用C#4.0
如何在C#中執行此操作?如何在c中執行sscanf#
int a,b,c;
sscanf(astring,"%d %d %d",&a,&b,&c);
最小的代碼和依賴關係是可取的,有一些內置的正則表達式的東西?
我使用C#4.0
如果像scannf你願意認爲,用戶將給予完全正確的數據,那麼你可以做以下。
string astring = ...;
string[] values = astring.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
int a = Int32.Parse(values[0]);
int b = Int32.Parse(values[1]);
int c = Int32.Parse(values[2]);
正則表達式適用於這種情況,但它們有點矯枉過正。該字符串可以很容易地用前面提到的Split方法進行標記。
我能想出的最簡單的事情是這樣的:
var fields = astring.Split(null, StringSplitOptions.RemoveEmptyEntries);
a = int.Parse(fields[0]);
b = int.Parse(fields[1]);
c = int.Parse(fields[2]);
或者,這是相當簡單的在C#編寫自己的sscanf()
版本。該語法使其相當容易實現。
我實現了我自己的版本併發布到網上。你可以查看它here。
** sscanf C#中的等價物**
http://msdn.microsoft.com/en-us/magazine/cc188759.aspx – 2010-08-05 04:20:16
使用Regex.Match()。更好地控制字段解析,並減少困擾scanf()的奇怪行爲。 – siride 2010-08-05 04:36:39