delphi 取出一段字符串的整数
作者&投稿:五哀 (若有异议请与网页底部的电邮联系)
整数到字符串 IntTostr() 字符串=IntTostr(整数)
字符串到整数 strToInt()
字符串到小数 StrToFloat()
小数到字符串 FloatToStr()
用字符串copy函数即可。如:beginwrite(copy('abc',1,1));end.
解决这个问题有两种办法:1、用正则表达式,标记出所有数字,然后取出。
//正则对象
var
uChecker: TRegExpr;
//创建正则,并装载匹配规则。
uChecker:= TRegExpr.Create;
uChecker.Expression:= '\d[\.\d]*';
if uChecker.Exec(r_Name) then
sStr:= uChecker.MatchPos[1]; //匹配结果
2、用字符串替换函数将所有字母替换
procedure TForm1.Button1Click(Sender: TObject);
const
c_Str = 'abc423sdfbc'; //这常量是你要处理的字符串,可以自行修改
var
i: Integer;
sStr: string;
begin
//将所有字母替换为空
for i := ord('A') to ord('Z') do
sStr:= StringReplace(c_Str, Char(i), '', [rfReplaceAll]);
for i := ord('a') to ord('z') do
sStr:= StringReplace(sStr, Char(i), '', [rfReplaceAll]);
ShowMessage(Format('字符串%s处理后为:%s', [c_Str, sStr]));
end;
自己选择吧。PS:下面这个帖子的分你还没给呢。
http://zhidao.baidu.com/question/210624767.html
我给你说个思路,你在几写代码吧
你列个循环,一个个字母在0~9里面对比,在那个0~9的数组里的,你保存到一个串里
就可以了!~
str := 'abc056'
s:='';
for i:=1 to length(str) do
begin
if str[i] in ['0'..'9'] then
s:=s+str[i];
end;
delphi 不会,但是正则表达式通用。你查查delphi 的正则表达式
匹配字符串="~[0,9]*$";
笃尚头孢: 解决这个问题有两种办法:1、用正则表达式,标记出所有数字,然后取出.//正则对象 var uChecker: TRegExpr;//创建正则,并装载匹配规则. uChecker:= TRegExpr.Create; uChecker.Expression:= '\d[\.\d]*'; if uChecker.Exec(r_Name) then sStr...
赤峰市19272035020: delphi 取整函数 - ?
笃尚头孢: var tsingle: single; tarray: array[1..10] of single; begin tsingle := 1.5; //for tsingle:=1 to 10 repeat tarray[trunc(tsingle)] := tsingle * 2; //这句编译错误 tsingle := tsingle + 1; until tsingle > 9; label1.Caption := floattostr(tarray[8]); 是你要的吧
赤峰市19272035020: DELPHI有没有一个取字串的函数,如123456 我想取到第三位到五位,结果是?
笃尚头孢: 呵呵,我写一个函数给你:function SubStr(Mystr:string;startpos,endpos:integer):string;begin result:=copy(mystr,startpos,(endpos-startpos));end;
赤峰市19272035020: delphi7 如何截取一段字符串的奇数位和偶数位的字符? - ?
笃尚头孢: var str:string; odd_sum,eve_sum,i:integer; begin str:='123456789'; odd_sum:=0;odd_sum:=0; for i := 1 to length(str) do begin if i mod 2=1 then odd_sum:=odd_sum+strtoint(str[i]) else eve_sum:=eve_sum+strtoint(str[i]); end; showmessage(str+'偶数位和为'+inttostr(eve_sum)+',奇数和为'+inttostr(odd_sum)); end;
赤峰市19272035020: delphi中有没有函数可以取字符串(象123.45 - 223.3)中的数字---拜托各位了 3Q - ?
笃尚头孢: 须要本身处理类似vb中的left和right函数的,在delphi一一个函数搞定,就是 copy()查找字符子串的函数(先要找到“-”嘛,类似vb的inStr),就是 pos() 查看原帖>> 采纳哦
赤峰市19272035020: delphi截取字符串COPY函数,比如123 - 456 - 789怎么截取呢?望高手回答一下,在下感激不尽啊 - ?
笃尚头孢: 真对这个问题感觉用StringReplace比Copy效率更高一些.var a, b: string; begin a:='123-456-789'; b:=StringReplace(a, '-', '', [rfReplaceAll]); Caption :=b; end;
赤峰市19272035020: 用delphi写一个程序求一个整数的各位数字,例如123的百位.十位.个位..急啊帮做出在加分 - ?
笃尚头孢: 写了个小例子,你自己看看 窗体添加一个edit1 用于输入数字,一个memo1用于输出结果,以及一个按钮.代码如下; procedure TForm1.Button1Click(Sender: TObject); var m,i:integer; n:string; begin m:=length(edit1.Text);//获取输入的数字的长度 n:=edit1.Text; for i:=1 to m do memo1.Lines.Add(Copy(n,i,1) );{Copy(n,i,1) )从字符串n中从第i个字符开始取1个字符} end;
赤峰市19272035020: delphi,字符串截取. - ?
笃尚头孢: 用TStringList.示例代码如下:var ts1:TStringlist;...... ts1:=TStringList.Create; try ts1.Delimiter:=','; ts1.DelimitedText:='CheckCount=0,TaskStatus=busy'; if ts1.Count>1 then begin a:=ts1.Values[ts1.Names[0]]; b:=ts1.Values[ts1.Names[1]]; end; finally ts1.free; end;
赤峰市19272035020: delphi 求整数各位数字 输入一个任意4位整数,计算千位、百位、十位和个位上的数字 - ?
笃尚头孢: program Project1; {$APPTYPE CONSOLE} uses SysUtils; var x,x1,x2,x3,x4:Integer; label l; begin { TODO -oUser -cConsole Main : Insert code here } l: Write('请输入一个四位数:'); Read(x); if (x<1000) or (x>9999) then begin WriteLn('输入有...
赤峰市19272035020: delphi 请问字符串的切取函数?
笃尚头孢: procedure Delete(var S: string; Index, Count:Integer);例如:var s: string; begin s 'Honest Abe Lincoln'; Delete(s,8,4); Canvas.TextOut(10, 10, s); end;