1

私が書いたコードが、私が望んでいたアクションを実行していないことに当惑しています。

私の目的:文字列の最後の文字を削除します(文字列ビルダーを使用した文字列ビルド)。

私のアプローチ:

  string toTrim = STR.ToString(); //here i have "INSERT INTO [dbo].[RCCMrec] ('ANI' , 'DNIS' , 'Date' , 'Time' , 'ConnId' , 'UUID' , 'EmployeeId' , 'AgentDN' , "

 toTrim = toTrim.Remove(toTrim.Length - 1);
    // here I STILL have "//here i have "INSERT INTO [dbo].[RCCMrec] ('ANI' , 'DNIS' , 'Date' , 'Time' , 'ConnId' , 'UUID' , 'EmployeeId' , 'AgentDN' , ""

私は何を間違っていますか?

4

3 に答える 3

3

Substring代わりに使用してください:

toTrim = toTrim.Substring(0, toTrim.Length - 1);

作業例:

var input = "abcdefghijklmnopqrstuxyz";
Console.WriteLine(input);
input = input.Substring(0, input.Length - 1);
Console.WriteLine(input);

版画

abcdefghijklmnopqrstuxyz
abcdefghijklmnopqrstuxy

しかし、あなたの問題はstring.Removeメソッドに関連していないようです。次のコードは問題なく動作し、同じ結果を出力します。

var input = "abcdefghijklmnopqrstuxyz";
Console.WriteLine(input);
input = input.Remove(input.Length - 1);
Console.WriteLine(input);
于 2013-11-04T05:58:49.153 に答える
3

文字列の最後に余分なスペースがあります...したがって、を使用するか-2、または実行して最後にスペースがないことを確認できます

string toTrim = STR.ToString().Trim();
于 2013-11-04T06:02:44.360 に答える
0

わかりました、私が間違っていた場所を見つけました。部分文字列に文字列を作成しているときに、誤って COMMA の後にスペースを挿入してしまいました。

 foreach (string COLUMNS in values)
                {
                    STR.Append("'");
                    STR.Append(COLUMNS);
                    STR.Append("' , "); //here is mistake
                }
                //Removing the last COMMA( , ) 
                string toTrim = STR.ToString();
              string lol= toTrim.Substring(0, toTrim.Length - 1);

削除したかったので、コードはコンマではなくスペースを削除していました。に直しました

 foreach (string COLUMNS in values)
                {
                    STR.Append("'");
                    STR.Append(COLUMNS);
                    STR.Append("' ,"); //corrected
                }
                //Removing the last COMMA( , ) 
                string toTrim = STR.ToString();
              string lol= toTrim.Substring(0, toTrim.Length - 1);

皆様、お世話になりました。

于 2013-11-04T06:05:31.587 に答える