鑑於字符串的字符串:/Projects/Multiply_Amada/MultiplyWeb/Shared/Home.aspx
如何截斷在.NET
我想要的第三/
後刪除所有尾隨字符,這樣的結果是:
我想這樣做沒有使用斯普利特或Charindex。
鑑於字符串的字符串:/Projects/Multiply_Amada/MultiplyWeb/Shared/Home.aspx
如何截斷在.NET
我想要的第三/
後刪除所有尾隨字符,這樣的結果是:
我想這樣做沒有使用斯普利特或Charindex。
string str = "/Projects/Multiply_Amada/MultiplyWeb/Shared/Home.aspx";
string newStr = str.SubString(0,24);
我想這會回答你的問題!
沒有不能使用子字符串它會影響服務器鏈接..所以請給出另一種解決方案 – Anto 2011-06-03 13:52:32
好的,你的要求有點難。所以,這個是什麼:
string RemoveAfterThirdSlash(string str)
{
return str.Aggregate(
new {
sb = new StringBuilder(),
slashes = 0
}, (state, c) => new {
sb = state.slashes >= 3 ? state.sb : state.sb.Append(c),
slashes = state.slashes + (c == '/' ? 1 : 0)
}, state => state.sb.ToString()
);
}
Console.WriteLine(RemoveAfterThirdSlash("/Projects/Multiply_Amada/MultiplyWeb/Shared/Home.aspx"));
如何使用聚合函數的字符串..它會顯示錯誤('字符串「不包含'Aggregate'的定義,並且沒有可以找到接受'string'類型的第一個參數的擴展方法'Aggregate'(你缺少using指令還是程序集引用?)string RemoveAfterThirdSlash(string str) 第65行:第66行:返回str.Aggregate( 第67行:新 第68行:{ – Anto 2011-06-03 14:02:58
添加System.Linq命名空間 – markpsmith 2011-06-03 14:23:51
此代碼acheives你需要什麼,但我寧願使用現有的.NET方法
string str = "/Projects/Multiply_Amada/MultiplyWeb/Shared/Home.aspx";
int index = 0;
int slashCount = 0;
for (int i = 0; i < str.Length; i++)
{
if (str[i] == '/' && slashCount < 3)
{
index = i;
slashCount++;
}
}
string newString = str.Substring(index + 1);
好的,謝謝工作 – Anto 2011-06-03 14:34:42
因爲你與路徑工作做在1號線,你可以這樣做:
Public Function GetPartialPath(ByVal input As String, ByVal depth As Integer) As String
Dim partialPath As String = input
Dim directories As New Generic.List(Of String)
Do Until String.IsNullOrEmpty(partialPath)
partialPath = IO.Path.GetDirectoryName(partialPath)
directories.Add(partialPath)
Loop
If depth > directories.Count Then depth = directories.Count
Return directories.ElementAt(directories.Count - depth)
End Function
未測試。
你是不是在用'(Split/Charindex)'是什麼意思?在不知道索引從哪裏開始的情況下如何去除子串? – 2011-06-03 13:27:45
同意......我認爲這是一個很奇怪的要求。 – Jemes 2011-06-03 13:33:27
小心給出你的要求的理由?否則它應該被張貼在http://codegolf.stackexchange.com/ – DarthJDG 2011-06-03 16:15:20