测试 System.SysUtils.TStringHelper_weixin_33721344的博客-程序员宝宝


大小写转换:
function ToLower: string;
function ToLower(LocaleID: TLocaleID): string;
function ToLowerInvariant: string;
function ToUpper: string;
function ToUpper(LocaleID: TLocaleID): string;
function ToUpperInvariant: string;

class function LowerCase(const S: string): string;
class function LowerCase(const S: string; LocaleOptions: TLocaleOptions): string;
class function UpperCase(const S: string): string;
class function UpperCase(const S: string; LocaleOptions: TLocaleOptions): string;
//--------------------------------------------------------------------------------
var
  str: string;
begin
  str := 'Delphi';
  str := str.ToLower; // delphi
  str := str.ToUpper; // DELPHI
end;


清除两边空格或指定字符:
function Trim: string;
function TrimLeft: string;
function TrimRight: string;
function Trim(const TrimChars: array of Char): string;
function TrimLeft(const TrimChars: array of Char): string;
function TrimRight(const TrimChars: array of Char): string;
//--------------------------------------------------------------------------------
var
  str1, str2: string;
begin
  str1 := '   Delphi 10000   ';

  str2 := str1.TrimLeft;  // 'Delphi 10000   '
  str2 := str1.TrimRight; // '   Delphi 10000'
  str2 := str1.Trim;      // 'Delphi 10000'

  str2 := str1.Trim([' ', '0']); // 'Delphi 1'
end;


字符串对比:
function CompareTo(const strB: string): Integer;

class function Compare(const StrA: string; const StrB: string): Integer;
class function CompareText(const StrA: string; const StrB: string): Integer;
class function Compare(const StrA: string; const StrB: string; LocaleID: TLocaleID): Integer;
class function Compare(const StrA: string; const StrB: string; IgnoreCase: Boolean): Integer;
class function Compare(const StrA: string; const StrB: string; IgnoreCase: Boolean; LocaleID: TLocaleID): Integer;
class function Compare(const StrA: string; IndexA: Integer; const StrB: string; IndexB: Integer; Length: Integer): Integer;
class function Compare(const StrA: string; IndexA: Integer; const StrB: string; IndexB: Integer; Length: Integer; LocaleID: TLocaleID): Integer;
class function Compare(const StrA: string; IndexA: Integer; const StrB: string; IndexB: Integer; Length: Integer; IgnoreCase: Boolean): Integer;
class function Compare(const StrA: string; IndexA: Integer; const StrB: string; IndexB: Integer; Length: Integer; IgnoreCase: Boolean; LocaleID: TLocaleID): Integer;
class function CompareOrdinal(const StrA: string; const StrB: string): Integer;
class function CompareOrdinal(const StrA: string; IndexA: Integer; const StrB: string; IndexB: Integer; Length: Integer): Integer;
//--------------------------------------------------------------------------------
var
  str1, str2: string;
  n: Integer;
begin
  str1 := 'ABC 123';
  str2 := 'abc 123';

  n := str1.CompareTo(str2);              // -32

  n := str1.Compare(str1, str2);          // 1
  n := str1.CompareText(str1, str2);      // 0; 相同

  n := str1.Compare(str1, str2, True);    // 0; 不区分大小写
  n := str1.CompareOrdinal(str1, str2);   // -32

  n := str1.Compare(str1, 4, str2, 4, 3); // 0; 只对比后三位
end;


搜索字符串:
function IndexOf(value: Char): Integer;
function IndexOf(const Value: string): Integer;
function IndexOf(Value: Char; StartIndex: Integer): Integer;
function IndexOf(const Value: string; StartIndex: Integer): Integer;
function IndexOf(Value: Char; StartIndex: Integer; Count: Integer): Integer;
function IndexOf(const Value: string; StartIndex: Integer; Count: Integer): Integer;
function IndexOfAny(const AnyOf: array of Char): Integer;
function IndexOfAny(const AnyOf: array of Char; StartIndex: Integer): Integer;
function IndexOfAny(const AnyOf: array of Char; StartIndex: Integer; Count: Integer): Integer;

function LastIndexOf(Value: Char): Integer;
function LastIndexOf(const Value: string): Integer;
function LastIndexOf(Value: Char; StartIndex: Integer): Integer;
function LastIndexOf(const Value: string; StartIndex: Integer): Integer;
function LastIndexOf(Value: Char; StartIndex: Integer; Count: Integer): Integer;
function LastIndexOf(const Value: string; StartIndex: Integer; Count: Integer): Integer;
function LastIndexOfAny(const AnyOf: array of Char): Integer;
function LastIndexOfAny(const AnyOf: array of Char; StartIndex: Integer): Integer;
function LastIndexOfAny(const AnyOf: array of Char; StartIndex: Integer; Count: Integer): Integer;
//--------------------------------------------------------------------------------
var
  str: string;
  n: Integer;
begin
  str := 'A1 A2 A3 A4';

  n := str.IndexOf('A');     // 0
  n := str.LastIndexOf('A'); // 9
  n := str.IndexOf('B');     // -1; 没找到

  n := str.IndexOf('A', 1, str.Length - 1);                  // 3
  n := str.LastIndexOf('A', str.Length - 1, str.Length - 1); // 9

  n := str.IndexOfAny(['1', '2', '3', '4']);     // 1
  n := str.LastIndexOfAny(['1', '2', '3', '4']); // 10
end;


是否包含:
function Contains(const Value: string): Boolean;

function StartsWith(const Value: string): Boolean;
function StartsWith(const Value: string; IgnoreCase: Boolean): Boolean;

function EndsWith(const Value: string): Boolean;
function EndsWith(const Value: string; IgnoreCase: Boolean): Boolean;

class function EndsText(const ASubText, AText: string): Boolean;
//--------------------------------------------------------------------------------
var
  str: string;
  b: Boolean;
begin
  str := 'Delphi XE4';

  b := str.Contains('XE'); // True
  b := str.Contains('xe'); // False

  b := str.StartsWith('delphi');       // False
  b := str.StartsWith('delphi', True); // True

  b := str.EndsWith('XE4');            // True

  b := str.EndsText('xe4', str);       // True
end;


添加或解除引号:
function QuotedString: string;
function QuotedString(const QuoteChar: Char): string;

function DeQuotedString: string;
function DeQuotedString(const QuoteChar: Char): string;
//--------------------------------------------------------------------------------
var
  str1, str2: string;
begin
  str1 := 'Delphi';

  str2 := str1.QuotedString;        // 'Delphi'
  str2 := str1.QuotedString('"');   // "Delphi"

  str1 := '"Delphi"';
  str2 := str1.DeQuotedString('"'); // Delphi
end;


适宽处理:
function PadLeft(TotalWidth: Integer): string;
function PadLeft(TotalWidth: Integer; PaddingChar: Char): string;
function PadRight(TotalWidth: Integer): string;
function PadRight(TotalWidth: Integer; PaddingChar: Char): string;
//--------------------------------------------------------------------------------
var
  str: string;
begin
  str := '1';
  str := str.PadLeft(4, '0'); // 0001
end;


插入与删除:
function Insert(StartIndex: Integer; const Value: string): string;

function Remove(StartIndex: Integer): string;
function Remove(StartIndex: Integer; Count: Integer): string;
//--------------------------------------------------------------------------------
var
  str1, str2: string;
begin
  str1 := 'Delphi 4';
  str2 := str1.Insert(7, 'XE'); // Delphi XE4

  str1 := 'Delphi XE4';
  str2 := str1.Remove(6);    // Delphi
  str2 := str1.Remove(7, 2); // Delphi 4
end;


截取:
function Substring(StartIndex: Integer): string;
function Substring(StartIndex: Integer; Length: Integer): string;
//--------------------------------------------------------------------------------
var
  str1, str2: string;
begin
  str1 := 'Delphi XE4';
  str2 := str1.Substring(7);    // XE4
  str2 := str1.Substring(7, 2); // XE
end;


替换:
function Replace(OldChar: Char; NewChar: Char): string;
function Replace(OldChar: Char; NewChar: Char; ReplaceFlags: TReplaceFlags): string;
function Replace(const OldValue: string; const NewValue: string): string;
function Replace(const OldValue: string; const NewValue: string; ReplaceFlags: TReplaceFlags): string;
//--------------------------------------------------------------------------------
var
  str1, str2: string;
begin
  str1 := 'ABC ABC ABC';
  str2 := str1.Replace('A', '*');                 // *BC *BC *BC
  str2 := str1.Replace('A', '*', [rfIgnoreCase]); // *BC ABC ABC
end;


分割:
function Split(const Separator: array of Char): TArray<string>;
function Split(const Separator: array of Char; Count: Integer): TArray<string>;
function Split(const Separator: array of Char; Options: TStringSplitOptions): TArray<string>;
function Split(const Separator: array of string; Options: TStringSplitOptions): TArray<string>;
function Split(const Separator: array of Char; Count: Integer; Options: TStringSplitOptions): TArray<string>;
function Split(const Separator: array of string; Count: Integer; Options: TStringSplitOptions): TArray<string>;
//--------------------------------------------------------------------------------
var
  str: string;
  arr: TArray<string>;
begin
  str := 'A-1,B-2,,,C-3,D-4';

  arr := str.Split([',']);                                   // arr[0] = A-1; Length(arr) = 6
  arr := str.Split([','], TStringSplitOptions.ExcludeEmpty); // 忽略空项; Length(arr) = 4
  arr := str.Split([','], 2);                                // 只提取前 2

  arr := str.Split([',', '-'], ExcludeEmpty); //arr[0] = A; Length(arr) = 8

  arr := str.Split([',,,'], None);            // 分隔符可以是一个字符串数组
end;


连接:
class function Join(const Separator: string; const values: array of const): string;
class function Join(const Separator: string; const Values: array of string): string;
class function Join(const Separator: string; const Values: IEnumerator<string>): string;
class function Join(const Separator: string; const Values: IEnumerable<string>): string;
class function Join(const Separator: string; const value: array of string; StartIndex: Integer; Count: Integer): string;
//--------------------------------------------------------------------------------
var
  S: string;
  str: string;
  strArr: TArray<string>;
begin
  str := 'A1,B2,C3,,,,D4,E5,F6,G7';
  strArr := str.Split([','], ExcludeEmpty);

  str := S.Join('-', strArr);             // A1-B2-C3-D4-E5-F6-G7

  str := S.Join('; ', [1,2,3,4,5]);       // 1; 2; 3; 4; 5

  str := S.Join(',', ['abc', 123, true]); // abc,123,True
end;


类型转换:
function ToBoolean: Boolean;
function ToInteger: Integer;
function ToSingle: Single;
function ToDouble: Double;
function ToExtended: Extended;

class function ToBoolean(const S: string): Boolean;
class function ToInteger(const S: string): Integer;
class function ToSingle(const S: string): Single;
class function ToDouble(const S: string): Double;
class function ToExtended(const S: string): Extended;

class function Parse(const Value: Integer): string;
class function Parse(const Value: Int64): string;
class function Parse(const Value: Boolean): string;
class function Parse(const Value: Extended): string;
//--------------------------------------------------------------------------------
var
  S: string;
  str: string;
  n: Integer;
  b: Boolean;
  f: Double;
begin
  str := S.Parse(123);
  n := str.ToInteger;  // 123
  b := str.ToBoolean;  // True

  str := S.Parse(True);
  b := str.ToBoolean;  // True
  n := str.ToInteger;  // -1

  str := S.Parse(3.14159260000);
  f := str.ToDouble;  //3.1415926
end;


定界符:
function IsDelimiter(const Delimiters: string; Index: Integer): Boolean;
function LastDelimiter(const Delims: string): Integer;
//--------------------------------------------------------------------------------
var
  str: string;
  b: Boolean;
  n: Integer;
begin
  str := 'http://del.cnblogs.com';

  b := str.IsDelimiter(':', 4);  // True
  b := str.IsDelimiter('//', 5); // True

  n := str.LastDelimiter('.');   // 18
  n := str.IndexOf('.');         // 10
end;


空字符串:
const Empty = '';

function IsEmpty: Boolean;

class function IsNullOrEmpty(const Value: string): Boolean;
class function IsNullOrWhiteSpace(const Value: string): Boolean;
//--------------------------------------------------------------------------------
var
  S: string;
  str: string;
  b: Boolean;
begin
  str := '       ';

  b := str.IsEmpty;               // False
  b := S.IsNullOrWhiteSpace(str); // True
end;


String 与 Char:
class function Create(C: Char; Count: Integer): string;
class function Create(const Value: array of Char; StartIndex: Integer; Length: Integer): string;
class function Create(const Value: array of Char): string;

property Chars[Index: Integer]: Char read GetChars;
property Length: Integer read GetLength;

function CountChar(const C: Char): Integer;

function ToCharArray: TArray<Char>;
function ToCharArray(StartIndex: Integer; Length: Integer): TArray<Char>;

procedure CopyTo(SourceIndex: Integer; var destination: array of Char; DestinationIndex: Integer; Count: Integer);
//--------------------------------------------------------------------------------
var
  S: string;
  str, str2: string;
  charArr: TCharArray;
  n: Integer;
  c: Char;
begin
  str := 'ABC';
  n := str.Length;   // 3
  c := str.Chars[0]; // A = str[1]

  str := S.Create('A', 7); // AAAAAAA

  charArr := 'ABCDEFG'.ToCharArray;
  str := s.Create(charArr);       // ABCDEFG
  str := S.Create(charArr, 1, 3); // BCD

  charArr := '1234567890'.ToCharArray;
  str := 'ABCDEFG';
  str.CopyTo(1, charArr, 2, 3);
  str := S.Create(charArr);       // 12BCD67890
end;


其他:
function Equals(const Value: string): Boolean;
function GetHashCode: Integer;

class function Equals(const a: string; const b: string): Boolean;
class function Format(const Format: string; const args: array of const): string;
class function Copy(const Str: string): string;
//--------------------------------------------------------------------------------

// 用 Equals 不如直接用 = 号
// 用 Copy 不如直接用 :=
// 用 string.Format 不如直接用 Format()

// 总之, 还是有用处的多!

转载于:https://my.oschina.net/hermer/blog/320943

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33721344/article/details/91788475

智能推荐

python(八)——获取路径下所有子目录,或非目录子文件_柚芷的博客-程序员宝宝_python 获取子目录下的所有文件

def file_name(file_dir): '''获取路径下所有子目录、或非目录子文件''' print('a') for root, dirs, files in os.walk(file_dir): print(root) #当前目录路径 print(dirs) #当前路径下所有子目录 ...

大数据BI工具Tableau学习【第一期】:Tableau简介和安装_张国荣家的弟弟的博客-程序员宝宝_bi工具tableau

tableau 使命:tableau是一个可视化分析平台,也可以是一种辅助性决策的工具软件,它改变了我们使用数据解决问题的方式,使个人和组织能够充分利用自己的数据。它的能力1.tableau帮助个人和组织提供数据驱动水平2.凭借人人可用的直观可视化分析,打破了商业智能行业的原有格局3.tableau帮助人们使用数据推动变革客户现身说法...

统计一个字符串中每种字符出现的次数 ?_Sword_meaning的博客-程序员宝宝

var str="HELLOWORLD" ; var arr=[] ; for(var i=0 ;i&lt;str.length ;i++){ var char=str[i] ; //console.log(char) ; //通过打印char我们得到的是下面这样一个关联数组 ; ![](https://img-blog.csdnimg.cn/20191109153203371.pn...

Leetcode--计算一个字符串中最长的有效括号字符长度_你听的到、的博客-程序员宝宝

Leetcode–计算一个字符串中最长的有效括号字符长度首先这又是一道括号匹配的问题,我这里先记录一下之前几道类似的题目:1、给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。思路:首先空串题目认为是有效字符串,这里只需简单判断...

深度学习中遇到的各种参数总结_躺着醒,醒着睡的博客-程序员宝宝_深度学习中的参数

深度学习里面的各种参数做一个学习记录提示:自己根据自己的理解写的,水平有限,仅供参考,如有错误,欢迎指正个人学习记录,仅供参考深度学习里面的各种参数做一个学习记录1. batchsize,iteration,epoch2. filter,kernel_size,stride,padding3. ReLU,sigmoid,softmax4. BatchNormal,Dropout,num_classes,mini_batch5. receptive field1. batchsize,iteratio

TDC-GP22的研究_我信张i的博客-程序员宝宝_tdc-gp22

本资源包含TDC-GP22的使用手册,TDC芯片寄存器的官方配置,本人基于stm32写的TDC-GP22寄存器配置程序,TDC-GP22的接线图和一个用文档方式写的注意事项文件:url80.ctfile.com/f/25127180-557023468-dd5834(访问密码:551685)以下内容无关:setState同步异步场景React通过this.state来访问state,通过this.setState()方法来更新state,当this.setState()方法被调用的时候,Reac

随便推点

一个自己编写的象棋程序,可实现走棋谱(如炮二平五),工程完成度%96,跟大家分享一下,下一步要做残局,欢迎交流_NORMAN兴宇的博客-程序员宝宝

#include#include#include #includechar qipan[10][9]={{'A','B','C','D','E','D','C','B','A'},{'+','+','+','+','+','+','+','+','+'},{'+','F','+','+','+','+','+','F','+'},{'G','+','G','+','G','+'

ubuntu WPS 报错系统缺失字体symbol、wingdings、wingdings 2、wingdings 3_Haochengqi的博客-程序员宝宝_系统缺失字体:symbol

出现提示的原因是因为WPS for Linux没有自带windows的字体,只要在Linux系统中加载字体即可。1下载缺失的字体文件,然后复制到Linux系统中的/usr/share/fonts文件夹中, 解压http://pan.baidu.com/s/1mh0lcbY2执行以下命令,生成字体的索引信息:sudo mkfontscalesudo mkfontdir3运行fc-cache命令更新字体缓存sudofc-cache4. 重启w...

Java面试题十五(Kafka)_夏至青柠的博客-程序员宝宝

152.kafka 可以脱离 zookeeper 单独使用吗?为什么?  kafka 不能脱离 zookeeper 单独使用,因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。153.kafka 有几种数据保留的策略?  kafka 有两种数据保存策略:按照过期时间保留和按照存储的消息大小保留。154.kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?  这个时候 kafka 会执行数据清除工作,

CAN中继 can总线中继器、can总线中继模块波特率和滤波设置_mmprime的博客-程序员宝宝_can中继器

can总线隔离中继器、canbridge、CanRepeater的can波特率和验收滤波设置。波特率支持2.5kbps~1Mbps之间任意设置,验收滤波设置支持20个组合的列表或屏蔽模式的ID过滤。1、配套的配置软件是绿色软件,无需安装,直接双击打开软件:2、搜索设备-读取配置3、设置can通道通讯波特率“CAN0参数”设置界面对应can总线隔离中继器的CAN1通道;“CAN1参数...

Bash shell echo如何原生输出带空格的字符串而不换行_ethnicitybeta的博客-程序员宝宝_shell输出空格

假如我们有一个文本文件 coder.txt,内容如下:Twinkle, twinkle, little star,How I wonder what you are.然后我们使用 cat 逐行打印这个文件,在终端中执行以下指令:cat coder.txt输出效果:那么现在有一个需求,假如需要对每行文本做进一步的处理,在bash中使用for循环逐行处理。我们先这样写:for f in `cat coder.txt`; do echo $f; done我们预期会像cat指令一样.

CS285课程笔记(6)——Inverse Reinforcement Learning_RavenRaaven的博客-程序员宝宝

1. 为什么要引入Inverse Reinforcement Learning2. Inverse RL问题的定义3. 经典方法3.1 Feature Matching IRL &amp; Maximum Margin Planning3.2 Maximum Entropy IRL4. 与深度学习结合的方法4.1 Guided Cost Learing Algorithm4.2 IRL &amp; GANs...