我在Excel电子表格单元格中有以下文字:
"Calories (kcal) "
(减去引号)。
我可以将单元格的值放入我的代码中:
string nutrientLabel = dataRow[0].ToString().Trim();
我是C#的新手,需要帮助将“Calories”和“(kcal)”分离到我可以上传到我的在线系统的不同变量。我需要结果是两个字符串:
nutrientLabel = Calories
nutrientUOM = kcal
我已经用Google搜索了这个并找到了如何让它分离并显示到Console.WriteLine
但是我需要实际输出2个变量的值。
foreach (DataRow dataRow in nutrientsdataTable.Rows)
{
string nutrientLabel = dataRow[0].ToString().Trim();
}
char[] paraSeparator = new char[] { '(', ')' };
string[] result;
Console.WriteLine("=======================================");
Console.WriteLine("Para separated strings :\n");
result = nutrientLabel.Split(paraSeparator,
StringSplitOptions.RemoveEmptyEntries);
foreach (string str in result)
{
Console.WriteLine(str);
}
答案 0 :(得分:1)
string [] s = dataRow[0].ToString().Split(' ');
nutrientLabel = s[0];
nutrientUOM = s[1].Replace(")","").Replace("(","");
答案 1 :(得分:1)
您可以使用简单的正则表达式:
var reg = new Regex(@"(?<calories>\d+)\s\((?<kcal>\d+)\)");
基本上说:
然后我们可以使用命名组提取结果:
var sampleInput = "15 (35)";
var match = reg.Match(sampleInput);
var calories = match.Groups["calories"];
var kcal = match.Groups["kcal"];
请注意calories
和kcal
仍然是字符串,您需要将它们解析为整数(或十进制)