CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

马上送分:送分小问题

楼主cnhxjt(瓶子)2003-12-02 09:45:07 在 Delphi / VCL组件开发及应用 提问

字符串如:  
  str:='13       asdf   .sfs   ddss       good';  
  我要得到新字符串,字符串中不含有空格  
  str1:=13;  
  str2:='asdf   .sfs   ddss'  
  str3:='good'     最好从最右边第一个空格起开始复制  
   
  问题点数:20、回复次数:13Top

1 楼hongqi162(失踪的月亮)回复于 2003-12-02 09:50:58 得分 2

先把空格去掉然后再截取  
  str   :=   StringReplace(str,   '   ',   '',   [rfReplaceAll]);   //去空格Top

2 楼ls2008(結婚了吧,傻B了吧)回复于 2003-12-02 09:58:11 得分 3

str_new:=trim(str);(去掉空格)  
  如果你的字串長度和中間的空格個數一樣就好辦,如果不一樣,就要  
  根據具體情況來截取了Top

3 楼cnhxjt(瓶子)回复于 2003-12-02 10:01:23 得分 0

谢谢关注!!  
  可那样不合我的意思  
  我的意思是  
  1.将字符串两头的空格去掉后  
  2.将从左到右磁到第一个空格将字符串给str1  
  3.从右到左磁到第一个空格并将后面字符串给str3  
  4.其它的给str2就达到目的了  
  Top

4 楼milerzhang(土豆)回复于 2003-12-02 10:16:43 得分 2

你知道VB里的split函数吗?可delphi里没有!我们可以自己写,我举个例子(转载):  
  function   split(s,s1:string):TStringList;  
  begin  
      Result:=TStringList.Create;  
      while   Pos(s1,s)>0   do  
      begin  
            Result.Add(Copy(s,1,Pos(s1,s)-1));  
            Delete(s,1,Pos(s1,s));  
      end;  
      Result.Add(s);  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      s1:TStringList;  
  begin  
    s1:=split('11111111     2222     33333     44444','     ');  
    Memo1.Lines.AddStrings(s1);  
    s1.Free;  
  end;  
   
  Top

5 楼soundbug(兼职乞丐)回复于 2003-12-02 10:29:08 得分 2

帮你搞定了  
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      str,str1,str2,str3:   string;  
      i,j:   Integer;  
  begin  
      str:='13       asdf   .sfs   ddss       good';  
      i   :=   pos('   ',str);  
      j   :=   pos('good',str);  
      str1   :=   copy(str,1,i-1);  
      str2   :=   copy(str,i,j-i);  
      str3   :=   copy(str,j,length(str)-j+1);  
      Label1.Caption   :=   str1;        
      //如果不要空格,可相应加上trim函数去掉两边空格Trim(str1)  
      Label2.Caption   :=   str2;  
      Label3.Caption   :=   str3;  
  end;Top

6 楼hongqi162(失踪的月亮)回复于 2003-12-02 10:34:33 得分 0

将两端空格去掉trim();  
   
  截取13,再截取good,剩下的是....然后trim(剩下的)  
  leftstr(str,2);//13  
  rightstr(str,4);//good  
  midstr(str,3,length(str)-6;//剩下的Top

7 楼cnhxjt(瓶子)回复于 2003-12-02 11:00:56 得分 0

谢谢各位了!!  
  可是  
  str1和str3的长度是不固定的啊  
  str1:=1,2,....,10001  
  str3:=good,bad,我的最爱,kkkkkkkkkkddd,....  
  都有可能呀  
   
  我的意思是  
  1.将字符串两头的空格去掉后  
  2.将从左到右磁到第一个空格将字符串给str1  
  3.从右到左磁到第一个空格并将后面字符串给str3  
  4.其它的给str2就达到目的了  
   
  看来这个问题还是属于高难度的!!!Top

8 楼cnhxjt(瓶子)回复于 2003-12-02 11:09:24 得分 0

其实我只要知道有没有从右向左读字符串的function就可以了Top

9 楼ls2008(結婚了吧,傻B了吧)回复于 2003-12-02 11:29:04 得分 0

用pos吧,Top

10 楼ls2008(結婚了吧,傻B了吧)回复于 2003-12-02 11:31:51 得分 0

其實就是實現的時候比較麻煩,要附一次值,然後就把用過的字串去掉  
  righrstr可以從右向左讀取數據Top

11 楼ls2008(結婚了吧,傻B了吧)回复于 2003-12-02 11:32:44 得分 0

rightstr可以從右開始Top

12 楼letmepass(小旋风)回复于 2003-12-02 11:38:33 得分 8

字符串如:  
  str:='13       asdf   .sfs   ddss       good';  
  我要得到新字符串,字符串中不含有空格  
  str1:=13;  
  str2:='asdf   .sfs   ddss'  
  str3:='good'     最好从最右边第一个空格起开始复制  
   
  VAR   K:STRING;  
   
  K:=STR;       STR1:=TRIM(COPY(STR,1,POS('   ',STR)-1);   //13  
  STR:=TRIM(DELETE(STR,1,LENTTH(STR1)));  
  str2:=TRIM(COPY(STR,1,POS('   ',STR)-1);   //asdf   .sfs   ddss  
  str:=TRIM(DELETE(STR,1,LENTTH(STR2)));  
  str3:=TRIM(COPY(STR,1,POS('   ',STR)-1);   //good  
   
   
  自己测一下  
  Top

13 楼yekai012(叶开)回复于 2003-12-02 12:17:42 得分 3

用lenhth得到总长,  
  用repeat.....     until   byte[i]='   '   和for     i=1   to/down   to   (从两边截取)...循环来控制,并用   str:=byte[i]+str(从后向前);str:=str+byte[i](从前向后);就可以了,Top

相关问题

  • 小问题,马上送分
  • 救救急!马上送分!
  • 送分答对马上给分
  • 高分相送,解决马上给分.
  • 小问题,马上给分
  • 小问题(马上给分)
  • 又有问题,又有50分,小弟马上送上!在线等答案!一解决,马上给分!
  • 在线急等,这个小问题,马上送分
  • 小问题!!!100分!!!马上给分
  • 邮件发送问题,解决马上送分(3小时内在线等)

关键词

  • 字符串
  • 空格
  • str
  • 去掉
  • 截取
  • asdf
  • trim
  • sfs ddss
  • good
  • pos

得分解答快速导航

  • 帖主:cnhxjt
  • hongqi162
  • ls2008
  • milerzhang
  • soundbug
  • letmepass
  • yekai012

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo