如何删除最后一个字符

时间:2015-03-17 14:49:24

标签: delphi

如何删除substring或其他任何字符串的最后一个字符?

例如;

var
  query : String;
begin
  query:= 'test=1&line=5&'; 
end;

输出必须为:

query -> test1&line=5

5 个答案:

答案 0 :(得分:12)

第三种选择是:

SetLength(Query,LENGTH(Query)-1)

答案 1 :(得分:6)

试试这个:

var
  query : String;
begin
  query:= 'test=1&line=5&';
  delete(query,length(query),1);

答案 2 :(得分:6)

我想我会把它写成:

NewValue := OldValue.Substring(0, OldValue.Length - 1);

我认为函数接口,即返回新值的函数,通常比具有副作用的过程更受欢迎。我发现赋值运算符是一个明确的指示符,表明正在为变量赋值。当您希望将新值存储在与原始值不同的变量中时,使用函数方法可以使语法更加清晰。

答案 3 :(得分:0)

我实际上会将此用于另一个名为“从字符串中删除最后5个字符”的答案,可能不是最好的方法,但它适用于简单的字符串,因为#0表示字符串的终止。

为你的例子

Query[Length(Query)]:= #0;

对于其他主题示例,我无法回复

str[Succ(Length(str)) - 5]:= #0;
showmessage(str);

P.S 我会投票给HeartWare答案,因为这是更可接受的方式。我只是为简单的字符串显示了一个具有所需效果的快速替代品(主要用于其他主题,假设删除最后5个字符)

答案 4 :(得分:0)

var
test: System.String;
begin
  test := 'Sample Text To Delete Last Character;!';
  test := Copy(test,1,length(test)-1);
  ShowMessage(test);
end;

变量已建立;
SampleText提供给变量;
变量然后在Copy命令中引用它本身 Copy命令通过从索引1(长度)-1的长度处理变量字符串来获取变量字符串 将结果返回给变量本身;
消息用于显示结果;

结果将是没有感叹号的文本; //示例文本删除最后一个字符;