在最後一個點的位置將字符串拆分爲兩個字符的最佳方式和習慣用法是什麼?基本上將擴展名與文件路徑或URL中路徑的其餘部分分開。到目前爲止,我正在做的是拆分(「。」),然後是String.Join(「。」),除了最後一部分。聽起來像使用火箭筒殺死蒼蠅。C上最後一個點打破字符串的最佳方式#
8
A
回答
22
如果你想表現,喜歡的東西:
string s = "a.b.c.d";
int i = s.LastIndexOf('.');
string lhs = i < 0 ? s : s.Substring(0,i),
rhs = i < 0 ? "" : s.Substring(i+1);
5
你可以使用Path.GetFilenameWithoutExtension()
,或者不會爲你工作:
int idx = filename.LastIndexOf('.');
if (idx >= 0)
filename = filename.Substring(0,idx);
1
的字符串的方法可能的LastIndexOf這裏一些對你有用。
但是Path或FileInfo操作符將更適合基於文件名的操作。
0
我想你真正需要的是Path.GetFileNameWithoutExtension Method (System.IO)只是爲它赫克:
string input = "foo.bar.foobar";
int lastDotPosition = input.LastIndexOf('.');
if (lastDotPosition == -1)
{
Console.WriteLine("No dot found");
}
else if (lastDotPosition == input.Length - 1)
{
Console.WriteLine("Last dot found at the very end");
}
else
{
string firstPart = input.Substring(0, lastDotPosition);
string lastPart = input.Substring(lastDotPosition + 1);
Console.WriteLine(firstPart);
Console.WriteLine(lastPart);
}
2
爲了獲取路徑不帶擴展名,使用
System.IO.Path.GetFileNameWithoutExtension(fileName)
,並獲得擴展(包括點),使用
Path.GetExtension(fileName)
編輯:
不幸的是GetFileNameWithoutExtension剝去領先的路徑,因此,你可以使用:
if (path == null)
{
return null;
}
int length = path.LastIndexOf('.');
if (length == -1)
{
return path;
}
return path.Substring(0, length);
1
Path.GetExtension()
應該幫助你。
1
怎麼樣使用LastIndexOf方法返回一個字符的最後發現位置。然後你可以使用Substring來提取你想要的東西。
1
如果String.LastIndexOf存在於字符串中,它將返回點的位置。然後你可以使用String.Substring方法來分割字符串。
1
您可以使用字符串的方法
LastIndexOf和子到acomplish任務。
相關問題
- 1. C#中的最佳方式打破了一長串
- 2. 最佳方式,如果一個字符串包含另一個字符串
- 3. C#只寫最後一個字符串
- 4. 最後一個字符串
- 5. 什麼是增加一個字符串的最佳方式[jQuery]
- 6. reg表達式截斷最後一個點的字符串
- 7. 什麼是拆分字符串的最佳方式? (C++)
- 8. 將字符串從C傳遞給Ada的最佳方式
- 9. 從c#/ .net打印的最佳方式?
- 10. objective-c獲取一個字符串的最後2個字符?
- 11. 刪除字符串中最後一個空格後的最後一個字符
- 12. C++最佳方式
- 13. 在Arduino上存儲字符串的最佳方式是什麼?
- 14. 輸出字符串用C++覆蓋終端上的最後一個字符串
- 15. C:連接字符串的最佳和最快方式是什麼
- 16. C - 字符串的最佳實踐
- 17. 修剪字符串,刪除C中的最後一個字符#
- 18. 字符串的最後一個字符前加逗號在C#
- 19. 檢查字符串的最後一個字符用C
- 20. Objective C - 刪除字符串中的最後一個字符
- 21. 如何獲取C++中字符串的最後一個字符
- 22. 刪除字符串c的最後一個字符#
- 23. C++獲取字符串中的最後一個字符
- 24. 字符串的第一個字符和最後一個字符
- 25. 將最後一個字符串剪成一個字母后用點字符preg_replace
- 26. 字符串:提取最後六個字符後的最後一個/
- 27. Ruby使這個字符串成爲數組的最佳方式?
- 28. 的正則表達式最後一個字符和字符串
- 29. 刪除字符串的最後n個字符(在Ruby中)的最佳方式是什麼?
- 30. 刪除文件的每一行中最後一個字符的最佳方法
這將工作的URL的片斷(使用/而不是\\)?它也會返回「文件夾」? Path.GetFilename()只返回文件的名稱,不包含目錄AFAIK。 – Pablo 2009-07-06 09:18:40
如果OP僅詢問了文件路徑,則該值爲+1。但是System.IO.Path文檔沒有提到對URL的支持。 – OregonGhost 2009-07-06 09:19:19