一个字符串中,怎样去除中间的空格,(30分)

  • 主题发起人 主题发起人 ptfjy
  • 开始时间 开始时间
P

ptfjy

Unregistered / Unconfirmed
GUEST, unregistred user!
如'奔腾 电脑',去除中间部分空格后,使其成为
'奔腾电脑',中间的空格多少不是固定的,如何解决?
 
//去掉字符串中的空格
function DelSpace(sStr:string):string;
var i:integer;
s1:string;
begin
s1:='';
for i:=1 to Length(sStr) do
begin
if copy(sStr,i,1)<>' ' then
s1:=s1+copy(sStr,i,1);
end;
result:=s1;
end;
 
好像没有,只能用苯办法。pos()
 
str := stringreplace(str,' ' ,'' [rfReplaceAll]);
 
同意henrynj,只做一点修改
function DelSpace(sStr:string):string;
var i:integer;
s1:string;
begin
s1:='';
for i:=1 to Length(sStr) do
begin
if sStr<>' ' then //只做这点修改
s1:=s1+sStr;
end;
result:=s1;
end;
 
来晚了,分数都让DouZheng等去了[:(]
 
同意DouZheng的回答!!!
 
同意楼上,只是加上一个删除全角空格的判断就更好了
function DelSpace(sStr:string):string;
var i:integer;
s1:string;
begin
s1:='';
for i:=1 to Length(sStr) do
begin
if (sStr<>' ') //判断半角空格
or (sStr<>' ') //判断全角空格
then
s1:=s1+sStr;
end;
result:=s1;
end;
 
还有另外两个函数AnsiRepalceStr和AnsiReplaceText
需要引用StrUtils单元,一个是区分大小写,一个是不区分
 
StringReplace()吧,

要看你的Delphi版本,建议你看一下Category“string handling routines”
 
str := stringreplace(str,' ' ,'' [rfReplaceAll]);
 
多人接受答案了。
 
最佳为 DouZheng ,
速度够快的哦,
结帐啦~~~~~~~老板!!!!
呵呵~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
后退
顶部