簡體   English   中英

在字符串末尾修剪字符串

[英]trim string at the end of the string

您好,我想從C#中刪除句子中的最后一個單詞。 這是我的查詢:

"SELECT * FROM People WHERE City = @City AND County = @County AND"

我想以編程方式刪除最后一個AND,該怎么做? 謝謝

string myString = "SELECT * FROM People WHERE City = @City AND County = @County AND";
Console.WriteLine(myString.Substring(0, myString.LastIndexOf(' ')));

但是您也可以考慮從一開始就構建沒有最后一個AND的AND子句。

List<string> andConditions = new List<string>();
andConditions.Add("City = @City");
andConditions.Add("County = @County");
string myString = "SELECT * FROM People WHERE " + string.Join(" AND ", andConditions);

修復給定字符串的多種方法。

這看起來像是動態生成的SQL,因此,在我看來,更明智的解決方案是永遠不要在那里擁有最終的AND 這可以通過計算已添加到where子句中的參數的數量,並where第一個之后的每個參數之前加上and來完成。

如果最后一個詞始終是“ AND”:

if (yourString.EndsWith(" AND"))
    yourString = yourString.Remove(yourString.Length - 4);

或者,如果您需要截斷超出最終空間的所有內容,請執行以下操作:

int index = yourString.LastIndexOf(' ');
if (index > -1)
    yourString = yourString.Remove(index);

(盡管, 正如Donnie所說的 ,真正的正確答案是不要首先將多余的最終單詞附加到字符串中。)

var query = "SELECT * FROM People WHERE City = @City AND County = @County AND";
var scrubbed = query.Substring(0, query.Length - 4);

也可以通過

//............
string query = SELECT * FROM People WHERE City = @City AND County = @County AND";
char[] charsAND = { 'A', 'N', 'D'};
char[] charsOR = { 'O', 'R'};
query = query.Trim().TrimEnd(charsAND).TrimEnd(charsOR);
//

其他方式:

string myString = "SELECT * FROM People WHERE City = @City AND County = @County AND";
myString = myString.TrimEnd(" AND".ToCharArray());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM