string.format的参数如何剪切字符串

时间:2015-08-21 10:23:00

标签: c# .net string.format

我需要使用附加参数或没有附加参数来打开网页。如果它有一个参数,我将使用string.format函数添加它。有时我需要在打开url之前格式化此参数,但是,我不想让代码过于具体。

参数始终是一个字符串,我需要剪切该字符串的结尾。是否可以在字符串中执行某些操作以删除不需要的文本?如果是这样,{0}如何看待它的工作原理?

        string url = "http://foo.bar/xt:{0}";
        string parameter = "abcdefghi";
        if (Regex.Matches(Regex.Replace(url,
            @"(\{{2}|\}{2})", ""), // removes escaped curly brackets
            @"\{(\d+)(?:\:?[^}]*)\}")
            .OfType<Match>().Any())
        {
            Process.Start(string.Format(url, parameter));
        }
        else
        {
            Process.Start(url);
        }

而不是abcdefghi我想把参数改为abcdefg。但这应该可以通过url配置。像{0:7)左右......

1 个答案:

答案 0 :(得分:0)

你必须自己写这种逻辑。但是,你可以做的是将它包装在扩展方法中,这样你就不必在任何地方复制它:

public static class StringExt
{
    public static string Truncate(this string value, int maxLength)
    {
        if (string.IsNullOrEmpty(value)) return value;
        return value.Length <= maxLength ? value : value.Substring(0, maxLength); 
    }
}

现在我们可以写:

var someString = "...";
someString = someString.Truncate(2);