修剪c#中的字符串

时间:2013-01-18 08:15:51

标签: c# telerik sitefinity

我在telerik sitefinity中采用pdf文件名,如下所示:

test..pdf (41 KB )

1..pdf (34 KB )

如何更改这些? test.pdf1.pdf

4 个答案:

答案 0 :(得分:2)

如果它们看起来都像这样(两个时期而不是一个时期你可以做到:

myFileName = myFileName.Replace("..", ".");

此外,我似乎没有考虑附加到路径的文件的大小。这可以通过拆分空间来删除​​,并采用这样的第一个元素:

myFileName = myFileName.Split(' ')[0];

获得两者的替换..并删除文件大小,您可以将它们链接在一起,如下所示:

myFileName = myFileName.Replace("..", ".").Split(' ')[0];

答案 1 :(得分:0)

如果扩展名未知,那么在您的情况下它是PDF,这可以通过以下方式完成:

string fileName = string.Format("{0}.pdf","test..pdf (41 KB )".Split('.')[0]);

如果您需要更多灵活性,也可以将PDF作为字符串变量。

不要简单地替换,因为文件 也包含点。

答案 2 :(得分:0)

String.Replace方法允许您将“..”替换为“。”只要你知道没有其他情况你可能想要“......”

EG:

 pdfFile = pdfFile.Replace("..", ".");

答案 3 :(得分:0)

更简单:string fileName = tempFileName.Replace("..pdf",".pdf");

为了提高性能,请使用StringBuilder.Replace()方法,

StringBuilder strBuilder = new StringBuilder(tempFileName);
strBuilder.Replace("..pdf", ".pdf");
string fileName = strBuilder.ToString();

如果你像我一样只想要替换一个实例(这有点棘手)

string ReverseString(string p)
{
    char[] arr = p.ToCharArray();
    Array.Reverse(arr);
    return new string(arr);
}

var regex = new RegEx("fdp..");
var fileName = ReverseString(regex.Replace(ReverseString(tempFileName), "fdp.",1));