我如何在c#中执行sscanf

时间:2010-08-05 04:14:50

标签: c# c

我如何在C#中执行此操作?

int a,b,c;
sscanf(astring,"%d %d %d",&a,&b,&c);

最少的代码和依赖是更好的,有一些内置的正则表达式的东西?

我正在使用c#4.0

3 个答案:

答案 0 :(得分:5)

如果您喜欢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方法轻松地对字符串进行标记。

答案 1 :(得分:0)

我能想到的最简单的事情是:

var fields = astring.Split(null, StringSplitOptions.RemoveEmptyEntries);
a = int.Parse(fields[0]);
b = int.Parse(fields[1]);
c = int.Parse(fields[2]);

答案 2 :(得分:0)

或者,在C#中编写自己的sscanf()版本非常简单。语法使其易于实现。

我实施了自己的版本并发布在网上。您可以查看here