【转载原文制表 龟山阿卍】欢迎加入Delphi开发局QQ群:32422310
Delphi 在面对跨平台开发,程序语言也改进不少,不过有些改进,让原本 Delphi 开发者有些不适应,最显注的就是字串处理函数了,原本 Pascal 语言字串起始由 1 开始,几乎是它的经典了,新版本字串由 0 开始,这个改变,让很多人不适应,也多有抱怨,虽然 Delphi 尽量保有相容性,但如果要写出一码,跨所有平台,还是建议全部采用新的写法(由0开始),才是一劳永逸的做法,下面就整理常用字串处理函数新旧对照表。
老版本Delphi里没有subString
只有Copy()
Copy(s, index, count)
其中s,主字符串, index是要拷的起点,count是要拷的字符数
如:Copy('heisetoufa', 3, 4),结果为'seto'
Delphi String 常用字串符处理函数:
说明 | 旧写法(Windows 平台)由1开始 | 新写法(跨所有平台)由0开始 |
插入字串 | Insert('str', Str, 1); | Str := Str.Insert(0, 'str'); |
删除字串 | Delete(Str, 1, 1); | Str := Str.Remove(0); Str := Str.Remove(0, 1); |
复制字串 | Str := Copy(Str, 1, 2); | Str := Str.Substring(0, 2); |
转成大写 | UpperCase(Str); | Str := Str.ToUpper; |
转成小写 | LowerCase(Str); | Str := Str.ToLower; |
重复字符 | StringOfChar('-', 15); | Str := String.Cretae('-', 15); |
找子字符 | Pos('ABC123', Str); | i := Str.IndexOf('ABC123'); |
是这些字 | CharInSet(Str[1], [' ',#13]); | Str.Chars[0].IsInArray([' ',#13]); |
C#语言:
string sceneName = "12-手机122345678";
sceneName = sceneName.Substring(0, sceneName.IndexOf('-'));
Delphi语言实现相同的功能,分别使用了Copy和Substring函数:欢迎加入Delphi开发局QQ群:32422310
var
sceneName :string;
begin
sceneName := '12-手机122345678';
sceneName := sceneName.Substring(0,sceneName.IndexOf('-'));//正确
end;