我试图解析字符串,看看":"后的值是否为整数.如果它不是整数,则从字符串中删除"Test:M".
这是我的示例字符串.
string testString = "Test:34,Test:M";
Run Code Online (Sandbox Code Playgroud)
我需要的结果 testString = "Test:34"
string[] data = testString.Split(',');
for (int i = 0; i < data.Length; i++)
{
string[] data1 = data[i].Split(':');
int num = 0;
if(Int32.TryParse(data1[1], out num))
{
}
}
Run Code Online (Sandbox Code Playgroud)
你快到了.试试这个:
var builder = new StringBuilder();
string[] data = testString.Split(',');
for (int i = 0; i < data.Length; i++)
{
string[] data1 = data[i].Split(':');
int num = 0;
if(Int32.TryParse(data1[1], out num))
{
builder.Append(data[i]);
buidler.Append(',');
}
}
testString = builder.ToString();
Run Code Online (Sandbox Code Playgroud)
编辑:添加","以保持输出中的逗号...
编辑:采取@Groo建议避免隐式字符串连接.
您可以继续使用循环结构,但我个人更喜欢 LINQ 的外观:
var dummy = 0;
var intStrings =
testString.Split(',')
.Where(s => s.Contains(":") && int.TryParse(s.Split(':')[1], out dummy))
.ToArray();
var result = String.Join(",", intStrings);
Run Code Online (Sandbox Code Playgroud)