替换字符串中的项目,同时确认格式

时间:2016-06-12 13:04:26

标签: c# string replace format

我有一个字符串输入格式为" string#int"我想将它转换为" string-int"为了网络友好的原因我正在使用的api。

为了做到这一点,我显然可以用一个 - 使用string.replace替换单个字符#,但理想情况下我想检查输入(由用户提供的用户)是否在正确的格式(字符串#int)在使用" - "转换为Web友好版本时或之前代替。基本上我想知道在C#中是否有一个方法可以用来检查这个输入的格式是否正确并将其转换为所需的结果格式。

2 个答案:

答案 0 :(得分:0)

显然没有内置方式,因为您请求的格式非常具体。另外,一个字符串可以包含任何内容,也可以包含h​​astag,#,所以我猜你需要缩小它。

您可以使用正则表达式来检查字符串是否格式正确。这可能是表达式:

[A-Za-z ]+#[0-9]+

符合以下条件:

  

这是一个字符串#123

答案 1 :(得分:0)

没有内置任何内容,但您可以执行以下操作:

var parts = input.Split(new char[] { '#' });

if (parts.Length != 2) incorrect format

int result;
if (!int.TryParse(parts[1], out result) incorrect format

output = String.Join("-", parts);

这需要input并将其拆分为"#"字符。如果结果不是两部分,则字符串无效。然后检查第二部分是否为整数 - 如果TryParse失败则无效。最后一步是重新加入这两部分,但这次使用-作为分隔符。