我有一個以@
結尾的字符串,並試圖TrimEnd這個字符串(我只想修剪它,如果@符號的確是在這個字符串的末尾),我發現C#完全忽略了這個。爲什麼C#.TrimEnd不能使用@符號?
我寫過(使用Razor;這是一個Ajax請求)兩個隱藏的輸入字段,用於在.TrimEnd('@')
調用之前和之後保存字符串值,並且值保持不變。
有作爲字符串是建立在C#中,不離開這個環境(肚裏最終數據庫)之前,我可以證明,它不工作進行編碼容不得這個值。
(變量「NFPA」包含字符串「3-2-0」)
string NFPAFPRACHGLOES = "";
if (!String.IsNullOrWhiteSpace(NFPA))
{
NFPAFPRACHGLOES += NFPA + "\n";
}
if (FBtn == "on")
{
NFPAFPRACHGLOES += "F";
}
if (PBtn == "on")
{
if (NFPAFPRACHGLOES.Contains("F"))
{
NFPAFPRACHGLOES += "/";
}
NFPAFPRACHGLOES += "P";
}
if (RBtn == "on")
{
if (NFPAFPRACHGLOES.Contains("F") || NFPAFPRACHGLOES.Contains("P"))
{
NFPAFPRACHGLOES += "/";
}
NFPAFPRACHGLOES += "R";
}
if (ABtn == "on")
{
if (NFPAFPRACHGLOES.Contains("F") || NFPAFPRACHGLOES.Contains("P") || NFPAFPRACHGLOES.Contains("R"))
{
NFPAFPRACHGLOES += "/";
}
NFPAFPRACHGLOES += "A";
}
if (CHBtn == "on")
{
if (NFPAFPRACHGLOES.Contains("F") || NFPAFPRACHGLOES.Contains("P") || NFPAFPRACHGLOES.Contains("R") || NFPAFPRACHGLOES.Contains("A"))
{
NFPAFPRACHGLOES += "/";
}
NFPAFPRACHGLOES += "CH";
}
NFPAFPRACHGLOES += "@"; //<--This is where the @ symbol gets added.
if (GBtn == "on")
{
NFPAFPRACHGLOES += "G";
}
if (LBtn == "on")
{
NFPAFPRACHGLOES += "L";
}
if (OBtn == "on")
{
NFPAFPRACHGLOES += "O";
}
if (EBtn == "on")
{
NFPAFPRACHGLOES += "E";
}
if (SBtn == "on")
{
NFPAFPRACHGLOES += "S";
}
//NFPAFPRACHGLOES = NFPAFPRACHGLOES.Trim();
NFPAFPRACHGLOES.TrimEnd('\n');
<input type="hidden" id="dumb1" value="@NFPAFPRACHGLOES" /> <-- read value before trimend call
NFPAFPRACHGLOES.TrimEnd('@');
<input type="hidden" id="dumb2" value="@NFPAFPRACHGLOES" /> <-- read value after trimend call.
這是我得到的警告信息讀出對我有什麼它會從AJAX回調之後。
我會嘗試通過在字符的ASCII編碼的版本只是爲了看看會發生什麼,但如你所知,.TrimEnd()
方法只接受char值(而不是字符串)。
我會使用替代,但它必須是隻有當它在字符串的結束,只有它是最後一個字符是一個@符號。
看來你不重新分配TrimEnd結果到一個新的(或相同)的字符串 – Steve