【问题标题】:How can the parameter for string.format cut the stringstring.format 的参数如何剪切字符串
【发布时间】:2015-08-21 19:17:43
【问题描述】:

我需要有可能打开带有附加参数或不带附加参数的网页。如果它有参数,我将使用 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);
        }

我想用 abcdefg 作为参数,而不是 abcdefghi。但这应该可以通过 url 进行配置。 {0:7) 之类的东西...

【问题讨论】:

  • 目前还不清楚您要完成什么。你想截断一个字符串吗?你能展示示例输入和输出吗?

标签: c# .net string.format


【解决方案1】:

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

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);

【讨论】:

  • 可能是 if 条件应该加在 someString.Truncate(2);好像(someString != null) .!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 2014-07-21
  • 1970-01-01
  • 2022-11-11
  • 2015-08-04
  • 1970-01-01
相关资源
最近更新 更多