如何删除substring
或其他任何字符串的最后一个字符?
例如;
var
query : String;
begin
query:= 'test=1&line=5&';
end;
输出必须为:
query -> test1&line=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的长度处理变量字符串来获取变量字符串
将结果返回给变量本身;
消息用于显示结果;
结果将是没有感叹号的文本; //示例文本删除最后一个字符;