舒肤佳 發表於 2022-12-13 14:46:00

Delphi(lazarus) TStringHelper用法详解(转载)

<div class="articalTitle">
<h2 id="t_44fa172f0101n4rh" class="titName SG_txta">Delphi(lazarus) TStringHelper用法详解</h2>
</div>
<div id="sina_keyword_ad_area" class="articalTag">Delphi XE4的TStringHelper,对操作字符串进一步带来更多的方法,使用这些方法才可以实现跨平台的代码。</div>
<div id="sina_keyword_ad_area2" class="articalContent   ">Delphi引用单元:<br><span style="color: rgba(255, 0, 0, 1)">System.SysUtils.TStringHelper</span><br>Lazarus引用单元:<br><span style="color: rgba(255, 0, 0, 1)">SysUtils</span></div>
<div class="articalContent   "><br><strong>大小写转换:</strong><br>--------------------------------------------------------------------------------<br>&nbsp;function&nbsp;ToLower:&nbsp;string;<br>function&nbsp;ToLower(LocaleID:&nbsp;TLocaleID):&nbsp;string;<br>function&nbsp;ToLowerInvariant:&nbsp;string;<br>function&nbsp;ToUpper:&nbsp;string;<br>function&nbsp;ToUpper(LocaleID:&nbsp;TLocaleID):&nbsp;string;<br>function&nbsp;ToUpperInvariant:&nbsp;string;<br><br>class&nbsp;function&nbsp;LowerCase(const&nbsp;S:&nbsp;string):&nbsp;string;<br>class&nbsp;function&nbsp;LowerCase(const&nbsp;S:&nbsp;string;&nbsp;LocaleOptions:&nbsp;TLocaleOptions):&nbsp;string;<br>class&nbsp;function&nbsp;UpperCase(const&nbsp;S:&nbsp;string):&nbsp;string;<br>class&nbsp;function&nbsp;UpperCase(const&nbsp;S:&nbsp;string;&nbsp;LocaleOptions:&nbsp;TLocaleOptions):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str:&nbsp;string;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'Delphi';<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;str.ToLower;&nbsp;//&nbsp;delphi<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;str.ToUpper;&nbsp;//&nbsp;DELPHI<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>清除两边空格或指定字符:</strong><br>--------------------------------------------------------------------------------<br>&nbsp;function&nbsp;Trim:&nbsp;string;<br>function&nbsp;TrimLeft:&nbsp;string;<br>function&nbsp;TrimRight:&nbsp;string;<br>function&nbsp;Trim(const&nbsp;TrimChars:&nbsp;array&nbsp;of&nbsp;Char):&nbsp;string;<br>function&nbsp;TrimLeft(const&nbsp;TrimChars:&nbsp;array&nbsp;of&nbsp;Char):&nbsp;string;<br>function&nbsp;TrimRight(const&nbsp;TrimChars:&nbsp;array&nbsp;of&nbsp;Char):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str1,&nbsp;str2:&nbsp;string;<br>begin<br>&nbsp;&nbsp;str1&nbsp;:=&nbsp;'&nbsp;&nbsp;&nbsp;Delphi&nbsp;10000&nbsp;&nbsp;&nbsp;';<br><br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.TrimLeft;&nbsp;&nbsp;//&nbsp;'Delphi&nbsp;10000&nbsp;&nbsp;&nbsp;'<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.TrimRight;&nbsp;//&nbsp;'&nbsp;&nbsp;&nbsp;Delphi&nbsp;10000'<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Trim;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;'Delphi&nbsp;10000'<br><br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Trim(['&nbsp;',&nbsp;'0']);&nbsp;//&nbsp;'Delphi&nbsp;1'<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>字符串对比:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;CompareTo(const&nbsp;strB:&nbsp;string):&nbsp;Integer;<br>class&nbsp;function&nbsp;Compare(const&nbsp;StrA:&nbsp;string;&nbsp;const&nbsp;StrB:&nbsp;string):&nbsp;Integer;<br>class&nbsp;function&nbsp;CompareText(const&nbsp;StrA:&nbsp;string;&nbsp;const&nbsp;StrB:&nbsp;string):&nbsp;Integer;<br>class&nbsp;function&nbsp;Compare(const&nbsp;StrA:&nbsp;string;&nbsp;const&nbsp;StrB:&nbsp;string;&nbsp;LocaleID:&nbsp;TLocaleID):&nbsp;Integer;<br>class&nbsp;function&nbsp;Compare(const&nbsp;StrA:&nbsp;string;&nbsp;const&nbsp;StrB:&nbsp;string;&nbsp;IgnoreCase:&nbsp;Boolean):&nbsp;Integer;<br>class&nbsp;function&nbsp;Compare(const&nbsp;StrA:&nbsp;string;&nbsp;const&nbsp;StrB:&nbsp;string;&nbsp;IgnoreCase:&nbsp;Boolean;&nbsp;LocaleID:&nbsp;TLocaleID):&nbsp;Integer;<br>class&nbsp;function&nbsp;Compare(const&nbsp;StrA:&nbsp;string;&nbsp;IndexA:&nbsp;Integer;&nbsp;const&nbsp;StrB:&nbsp;string;&nbsp;IndexB:&nbsp;Integer;&nbsp;Length:&nbsp;Integer):&nbsp;Integer;<br>class&nbsp;function&nbsp;Compare(const&nbsp;StrA:&nbsp;string;&nbsp;IndexA:&nbsp;Integer;&nbsp;const&nbsp;StrB:&nbsp;string;&nbsp;IndexB:&nbsp;Integer;&nbsp;Length:&nbsp;Integer;&nbsp;LocaleID:&nbsp;TLocaleID):&nbsp;Integer;<br>class&nbsp;function&nbsp;Compare(const&nbsp;StrA:&nbsp;string;&nbsp;IndexA:&nbsp;Integer;&nbsp;const&nbsp;StrB:&nbsp;string;&nbsp;IndexB:&nbsp;Integer;&nbsp;Length:&nbsp;Integer;&nbsp;IgnoreCase:&nbsp;Boolean):&nbsp;Integer;<br>class&nbsp;function&nbsp;Compare(const&nbsp;StrA:&nbsp;string;&nbsp;IndexA:&nbsp;Integer;&nbsp;const&nbsp;StrB:&nbsp;string;&nbsp;IndexB:&nbsp;Integer;&nbsp;Length:&nbsp;Integer;&nbsp;IgnoreCase:&nbsp;Boolean;&nbsp;LocaleID:&nbsp;TLocaleID):&nbsp;Integer;<br>class&nbsp;function&nbsp;CompareOrdinal(const&nbsp;StrA:&nbsp;string;&nbsp;const&nbsp;StrB:&nbsp;string):&nbsp;Integer;<br>class&nbsp;function&nbsp;CompareOrdinal(const&nbsp;StrA:&nbsp;string;&nbsp;IndexA:&nbsp;Integer;&nbsp;const&nbsp;StrB:&nbsp;string;&nbsp;IndexB:&nbsp;Integer;&nbsp;Length:&nbsp;Integer):&nbsp;Integer;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str1,&nbsp;str2:&nbsp;string;<br>&nbsp;&nbsp;n:&nbsp;Integer;<br>begin<br>&nbsp;&nbsp;str1&nbsp;:=&nbsp;'ABC&nbsp;123';<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;'abc&nbsp;123';<br><br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str1.CompareTo(str2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;-32<br><br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str1.Compare(str1,&nbsp;str2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str1.CompareText(str1,&nbsp;str2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;0;&nbsp;相同<br><br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str1.Compare(str1,&nbsp;str2,&nbsp;True);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;0;&nbsp;不区分大小写<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str1.CompareOrdinal(str1,&nbsp;str2);&nbsp;&nbsp;&nbsp;//&nbsp;-32<br><br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str1.Compare(str1,&nbsp;4,&nbsp;str2,&nbsp;4,&nbsp;3);&nbsp;//&nbsp;0;&nbsp;只对比后三位<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>搜索字符串:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;IndexOf(value:&nbsp;Char):&nbsp;Integer;<br>function&nbsp;IndexOf(const&nbsp;Value:&nbsp;string):&nbsp;Integer;<br>function&nbsp;IndexOf(Value:&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;IndexOf(const&nbsp;Value:&nbsp;string;&nbsp;StartIndex:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;IndexOf(Value:&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;IndexOf(const&nbsp;Value:&nbsp;string;&nbsp;StartIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;IndexOfAny(const&nbsp;AnyOf:&nbsp;array&nbsp;of&nbsp;Char):&nbsp;Integer;<br>function&nbsp;IndexOfAny(const&nbsp;AnyOf:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;IndexOfAny(const&nbsp;AnyOf:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer):&nbsp;Integer;<br><br>function&nbsp;LastIndexOf(Value:&nbsp;Char):&nbsp;Integer;<br>function&nbsp;LastIndexOf(const&nbsp;Value:&nbsp;string):&nbsp;Integer;<br>function&nbsp;LastIndexOf(Value:&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;LastIndexOf(const&nbsp;Value:&nbsp;string;&nbsp;StartIndex:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;LastIndexOf(Value:&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;LastIndexOf(const&nbsp;Value:&nbsp;string;&nbsp;StartIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;LastIndexOfAny(const&nbsp;AnyOf:&nbsp;array&nbsp;of&nbsp;Char):&nbsp;Integer;<br>function&nbsp;LastIndexOfAny(const&nbsp;AnyOf:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer):&nbsp;Integer;<br>function&nbsp;LastIndexOfAny(const&nbsp;AnyOf:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer):&nbsp;Integer;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str:&nbsp;string;<br>&nbsp;&nbsp;n:&nbsp;Integer;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'A1&nbsp;A2&nbsp;A3&nbsp;A4';<br><br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.IndexOf('A');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;0<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.LastIndexOf('A');&nbsp;//&nbsp;9<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.IndexOf('B');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;-1;&nbsp;没找到<br><br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.IndexOf('A',&nbsp;1,&nbsp;str.Length&nbsp;-&nbsp;1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;3<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.LastIndexOf('A',&nbsp;str.Length&nbsp;-&nbsp;1,&nbsp;str.Length&nbsp;-&nbsp;1);&nbsp;//&nbsp;9<br><br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.IndexOfAny(['1',&nbsp;'2',&nbsp;'3',&nbsp;'4']);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.LastIndexOfAny(['1',&nbsp;'2',&nbsp;'3',&nbsp;'4']);&nbsp;//&nbsp;10<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>是否包含:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;Contains(const&nbsp;Value:&nbsp;string):&nbsp;Boolean;<br>function&nbsp;StartsWith(const&nbsp;Value:&nbsp;string):&nbsp;Boolean;<br>function&nbsp;StartsWith(const&nbsp;Value:&nbsp;string;&nbsp;IgnoreCase:&nbsp;Boolean):&nbsp;Boolean;<br>function&nbsp;EndsWith(const&nbsp;Value:&nbsp;string):&nbsp;Boolean;<br>function&nbsp;EndsWith(const&nbsp;Value:&nbsp;string;&nbsp;IgnoreCase:&nbsp;Boolean):&nbsp;Boolean;<br>class&nbsp;function&nbsp;EndsText(const&nbsp;ASubText,&nbsp;AText:&nbsp;string):&nbsp;Boolean;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str:&nbsp;string;<br>&nbsp;&nbsp;b:&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'Delphi&nbsp;XE4';<br><br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.Contains('XE');&nbsp;//&nbsp;True<br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.Contains('xe');&nbsp;//&nbsp;False<br><br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.StartsWith('delphi');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;False<br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.StartsWith('delphi',&nbsp;True);&nbsp;//&nbsp;True<br><br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.EndsWith('XE4');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;True<br><br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.EndsText('xe4',&nbsp;str);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;True<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>添加或解除引号:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;QuotedString:&nbsp;string;<br>function&nbsp;QuotedString(const&nbsp;QuoteChar:&nbsp;Char):&nbsp;string;<br>function&nbsp;DeQuotedString:&nbsp;string;<br>function&nbsp;DeQuotedString(const&nbsp;QuoteChar:&nbsp;Char):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str1,&nbsp;str2:&nbsp;string;<br>begin<br>&nbsp;&nbsp;str1&nbsp;:=&nbsp;'Delphi';<br><br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.QuotedString;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;'Delphi'<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.QuotedString('"');&nbsp;&nbsp;&nbsp;//&nbsp;"Delphi"<br><br>&nbsp;&nbsp;str1&nbsp;:=&nbsp;'"Delphi"';<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.DeQuotedString('"');&nbsp;//&nbsp;Delphi<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>适宽处理:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;PadLeft(TotalWidth:&nbsp;Integer):&nbsp;string;<br>function&nbsp;PadLeft(TotalWidth:&nbsp;Integer;&nbsp;PaddingChar:&nbsp;Char):&nbsp;string;<br>function&nbsp;PadRight(TotalWidth:&nbsp;Integer):&nbsp;string;<br>function&nbsp;PadRight(TotalWidth:&nbsp;Integer;&nbsp;PaddingChar:&nbsp;Char):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str:&nbsp;string;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'1';<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;str.PadLeft(4,&nbsp;'0');&nbsp;//&nbsp;0001<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>插入与删除:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;Insert(StartIndex:&nbsp;Integer;&nbsp;const&nbsp;Value:&nbsp;string):&nbsp;string;<br>function&nbsp;Remove(StartIndex:&nbsp;Integer):&nbsp;string;<br>function&nbsp;Remove(StartIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str1,&nbsp;str2:&nbsp;string;<br>begin<br>&nbsp;&nbsp;str1&nbsp;:=&nbsp;'Delphi&nbsp;4';<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Insert(7,&nbsp;'XE');&nbsp;//&nbsp;Delphi&nbsp;XE4<br><br>&nbsp;&nbsp;str1&nbsp;:=&nbsp;'Delphi&nbsp;XE4';<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Remove(6);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Delphi<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Remove(7,&nbsp;2);&nbsp;//&nbsp;Delphi&nbsp;4<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>截取:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;Substring(StartIndex:&nbsp;Integer):&nbsp;string;<br>function&nbsp;Substring(StartIndex:&nbsp;Integer;&nbsp;Length:&nbsp;Integer):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str1,&nbsp;str2:&nbsp;string;<br>begin<br>&nbsp;&nbsp;str1&nbsp;:=&nbsp;'Delphi&nbsp;XE4';<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Substring(7);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;XE4<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Substring(7,&nbsp;2);&nbsp;//&nbsp;XE<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>替换:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;Replace(OldChar:&nbsp;Char;&nbsp;NewChar:&nbsp;Char):&nbsp;string;<br>function&nbsp;Replace(OldChar:&nbsp;Char;&nbsp;NewChar:&nbsp;Char;&nbsp;ReplaceFlags:&nbsp;TReplaceFlags):&nbsp;string;<br>function&nbsp;Replace(const&nbsp;OldValue:&nbsp;string;&nbsp;const&nbsp;NewValue:&nbsp;string):&nbsp;string;<br>function&nbsp;Replace(const&nbsp;OldValue:&nbsp;string;&nbsp;const&nbsp;NewValue:&nbsp;string;&nbsp;ReplaceFlags:&nbsp;TReplaceFlags):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str1,&nbsp;str2:&nbsp;string;<br>begin<br>&nbsp;&nbsp;str1&nbsp;:=&nbsp;'ABC&nbsp;ABC&nbsp;ABC';<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Replace('A',&nbsp;'*');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;*BC&nbsp;*BC&nbsp;*BC<br>&nbsp;&nbsp;str2&nbsp;:=&nbsp;str1.Replace('A',&nbsp;'*',&nbsp;);&nbsp;//&nbsp;*BC&nbsp;ABC&nbsp;ABC<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>分割:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;Split(const&nbsp;Separator:&nbsp;array&nbsp;of&nbsp;Char):&nbsp;TArray;<br>function&nbsp;Split(const&nbsp;Separator:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;Count:&nbsp;Integer):&nbsp;TArray;<br>function&nbsp;Split(const&nbsp;Separator:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;Options:&nbsp;TStringSplitOptions):&nbsp;TArray;<br>function&nbsp;Split(const&nbsp;Separator:&nbsp;array&nbsp;of&nbsp;string;&nbsp;Options:&nbsp;TStringSplitOptions):&nbsp;TArray;<br>function&nbsp;Split(const&nbsp;Separator:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;Count:&nbsp;Integer;&nbsp;Options:&nbsp;TStringSplitOptions):&nbsp;TArray;<br>function&nbsp;Split(const&nbsp;Separator:&nbsp;array&nbsp;of&nbsp;string;&nbsp;Count:&nbsp;Integer;&nbsp;Options:&nbsp;TStringSplitOptions):&nbsp;TArray;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str:&nbsp;string;<br>&nbsp;&nbsp;arr:&nbsp;TArray;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'A-1,B-2,,,C-3,D-4';<br><br>&nbsp;&nbsp;arr&nbsp;:=&nbsp;str.Split([',']);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;arr&nbsp;=&nbsp;A-1;&nbsp;Length(arr)&nbsp;=&nbsp;6<br>&nbsp;&nbsp;arr&nbsp;:=&nbsp;str.Split([','],&nbsp;TStringSplitOptions.ExcludeEmpty);&nbsp;//&nbsp;忽略空项;&nbsp;Length(arr)&nbsp;=&nbsp;4<br>&nbsp;&nbsp;arr&nbsp;:=&nbsp;str.Split([','],&nbsp;2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;只提取前&nbsp;2<br><br>&nbsp;&nbsp;arr&nbsp;:=&nbsp;str.Split([',',&nbsp;'-'],&nbsp;ExcludeEmpty);&nbsp;//arr&nbsp;=&nbsp;A;&nbsp;Length(arr)&nbsp;=&nbsp;8<br><br>&nbsp;&nbsp;arr&nbsp;:=&nbsp;str.Split([',,,'],&nbsp;None);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;分隔符可以是一个字符串数组<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>连接:</strong><br>--------------------------------------------------------------------------------<br>class&nbsp;function&nbsp;Join(const&nbsp;Separator:&nbsp;string;&nbsp;const&nbsp;values:&nbsp;array&nbsp;of&nbsp;const):&nbsp;string;<br>class&nbsp;function&nbsp;Join(const&nbsp;Separator:&nbsp;string;&nbsp;const&nbsp;Values:&nbsp;array&nbsp;of&nbsp;string):&nbsp;string;<br>class&nbsp;function&nbsp;Join(const&nbsp;Separator:&nbsp;string;&nbsp;const&nbsp;Values:&nbsp;IEnumerator):&nbsp;string;<br>class&nbsp;function&nbsp;Join(const&nbsp;Separator:&nbsp;string;&nbsp;const&nbsp;Values:&nbsp;IEnumerable):&nbsp;string;<br>class&nbsp;function&nbsp;Join(const&nbsp;Separator:&nbsp;string;&nbsp;const&nbsp;value:&nbsp;array&nbsp;of&nbsp;string;&nbsp;StartIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;S:&nbsp;string;<br>&nbsp;&nbsp;str:&nbsp;string;<br>&nbsp;&nbsp;strArr:&nbsp;TArray;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'A1,B2,C3,,,,D4,E5,F6,G7';<br>&nbsp;&nbsp;strArr&nbsp;:=&nbsp;str.Split([','],&nbsp;ExcludeEmpty);<br><br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Join('-',&nbsp;strArr);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;A1-B2-C3-D4-E5-F6-G7<br><br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Join(';&nbsp;',&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;1;&nbsp;2;&nbsp;3;&nbsp;4;&nbsp;5<br><br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Join(',',&nbsp;['abc',&nbsp;123,&nbsp;true]);&nbsp;//&nbsp;abc,123,True<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>类型转换:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;ToBoolean:&nbsp;Boolean;<br>function&nbsp;ToInteger:&nbsp;Integer;<br>function&nbsp;ToSingle:&nbsp;Single;<br>function&nbsp;ToDouble:&nbsp;Double;<br>function&nbsp;ToExtended:&nbsp;Extended;<br><br>class&nbsp;function&nbsp;ToBoolean(const&nbsp;S:&nbsp;string):&nbsp;Boolean;<br>class&nbsp;function&nbsp;ToInteger(const&nbsp;S:&nbsp;string):&nbsp;Integer;<br>class&nbsp;function&nbsp;ToSingle(const&nbsp;S:&nbsp;string):&nbsp;Single;<br>class&nbsp;function&nbsp;ToDouble(const&nbsp;S:&nbsp;string):&nbsp;Double;<br>class&nbsp;function&nbsp;ToExtended(const&nbsp;S:&nbsp;string):&nbsp;Extended;<br><br>class&nbsp;function&nbsp;Parse(const&nbsp;Value:&nbsp;Integer):&nbsp;string;<br>class&nbsp;function&nbsp;Parse(const&nbsp;Value:&nbsp;Int64):&nbsp;string;<br>class&nbsp;function&nbsp;Parse(const&nbsp;Value:&nbsp;Boolean):&nbsp;string;<br>class&nbsp;function&nbsp;Parse(const&nbsp;Value:&nbsp;Extended):&nbsp;string;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;S:&nbsp;string;<br>&nbsp;&nbsp;str:&nbsp;string;<br>&nbsp;&nbsp;n:&nbsp;Integer;<br>&nbsp;&nbsp;b:&nbsp;Boolean;<br>&nbsp;&nbsp;f:&nbsp;Double;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Parse(123);<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.ToInteger;&nbsp;&nbsp;//&nbsp;123<br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.ToBoolean;&nbsp;&nbsp;//&nbsp;True<br><br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Parse(True);<br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.ToBoolean;&nbsp;&nbsp;//&nbsp;True<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.ToInteger;&nbsp;&nbsp;//&nbsp;-1<br><br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Parse(3.14159260000);<br>&nbsp;&nbsp;f&nbsp;:=&nbsp;str.ToDouble;&nbsp;&nbsp;//3.1415926<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>定界符:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;IsDelimiter(const&nbsp;Delimiters:&nbsp;string;&nbsp;Index:&nbsp;Integer):&nbsp;Boolean;<br>function&nbsp;LastDelimiter(const&nbsp;Delims:&nbsp;string):&nbsp;Integer;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;str:&nbsp;string;<br>&nbsp;&nbsp;b:&nbsp;Boolean;<br>&nbsp;&nbsp;n:&nbsp;Integer;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'http://del.cnblogs.com';<br><br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.IsDelimiter(':',&nbsp;4);&nbsp;&nbsp;//&nbsp;True<br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.IsDelimiter('//',&nbsp;5);&nbsp;//&nbsp;True<br><br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.LastDelimiter('.');&nbsp;&nbsp;&nbsp;//&nbsp;18<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.IndexOf('.');&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;10<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>空字符串:</strong><br>--------------------------------------------------------------------------------<br>const&nbsp;Empty&nbsp;=&nbsp;'';<br>function&nbsp;IsEmpty:&nbsp;Boolean;<br>class&nbsp;function&nbsp;IsNullOrEmpty(const&nbsp;Value:&nbsp;string):&nbsp;Boolean;<br>class&nbsp;function&nbsp;IsNullOrWhiteSpace(const&nbsp;Value:&nbsp;string):&nbsp;Boolean;<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;S:&nbsp;string;<br>&nbsp;&nbsp;str:&nbsp;string;<br>&nbsp;&nbsp;b:&nbsp;Boolean;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';<br><br>&nbsp;&nbsp;b&nbsp;:=&nbsp;str.IsEmpty;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;False<br>&nbsp;&nbsp;b&nbsp;:=&nbsp;S.IsNullOrWhiteSpace(str);&nbsp;//&nbsp;True<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>String&nbsp;与&nbsp;Char:</strong><br>--------------------------------------------------------------------------------<br>class&nbsp;function&nbsp;Create(C:&nbsp;Char;&nbsp;Count:&nbsp;Integer):&nbsp;string;<br>class&nbsp;function&nbsp;Create(const&nbsp;Value:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;StartIndex:&nbsp;Integer;&nbsp;Length:&nbsp;Integer):&nbsp;string;<br>class&nbsp;function&nbsp;Create(const&nbsp;Value:&nbsp;array&nbsp;of&nbsp;Char):&nbsp;string;<br>property&nbsp;Chars:&nbsp;Char&nbsp;read&nbsp;GetChars;<br>property&nbsp;Length:&nbsp;Integer&nbsp;read&nbsp;GetLength;<br>function&nbsp;CountChar(const&nbsp;C:&nbsp;Char):&nbsp;Integer;<br>function&nbsp;ToCharArray:&nbsp;TArray;<br>function&nbsp;ToCharArray(StartIndex:&nbsp;Integer;&nbsp;Length:&nbsp;Integer):&nbsp;TArray;<br>procedure&nbsp;CopyTo(SourceIndex:&nbsp;Integer;&nbsp;var&nbsp;destination:&nbsp;array&nbsp;of&nbsp;Char;&nbsp;DestinationIndex:&nbsp;Integer;&nbsp;Count:&nbsp;Integer);<br>//--------------------------------------------------------------------------------<br>var<br>&nbsp;&nbsp;S:&nbsp;string;<br>&nbsp;&nbsp;str,&nbsp;str2:&nbsp;string;<br>&nbsp;&nbsp;charArr:&nbsp;TCharArray;<br>&nbsp;&nbsp;n:&nbsp;Integer;<br>&nbsp;&nbsp;c:&nbsp;Char;<br>begin<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'ABC';<br>&nbsp;&nbsp;n&nbsp;:=&nbsp;str.Length;&nbsp;&nbsp;&nbsp;//&nbsp;3<br>&nbsp;&nbsp;c&nbsp;:=&nbsp;str.Chars;&nbsp;//&nbsp;A&nbsp;=&nbsp;str<br><br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Create('A',&nbsp;7);&nbsp;//&nbsp;AAAAAAA<br><br>&nbsp;&nbsp;charArr&nbsp;:=&nbsp;'ABCDEFG'.ToCharArray;<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;s.Create(charArr);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;ABCDEFG<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Create(charArr,&nbsp;1,&nbsp;3);&nbsp;//&nbsp;BCD<br><br>&nbsp;&nbsp;charArr&nbsp;:=&nbsp;'1234567890'.ToCharArray;<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;'ABCDEFG';<br>&nbsp;&nbsp;str.CopyTo(1,&nbsp;charArr,&nbsp;2,&nbsp;3);<br>&nbsp;&nbsp;str&nbsp;:=&nbsp;S.Create(charArr);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;12BCD67890<br>end;<br>--------------------------------------------------------------------------------<br><br><strong>其他:</strong><br>--------------------------------------------------------------------------------<br>function&nbsp;Equals(const&nbsp;Value:&nbsp;string):&nbsp;Boolean;<br>function&nbsp;GetHashCode:&nbsp;Integer;<br>class&nbsp;function&nbsp;Equals(const&nbsp;a:&nbsp;string;&nbsp;const&nbsp;b:&nbsp;string):&nbsp;Boolean;<br>class&nbsp;function&nbsp;Format(const&nbsp;Format:&nbsp;string;&nbsp;const&nbsp;args:&nbsp;array&nbsp;of&nbsp;const):&nbsp;string;<br>class&nbsp;function&nbsp;Copy(const&nbsp;Str:&nbsp;string):&nbsp;string;<br>//--------------------------------------------------------------------------------<br><br>//&nbsp;用&nbsp;Equals&nbsp;不如直接用&nbsp;=&nbsp;号<br>//&nbsp;用&nbsp;Copy&nbsp;不如直接用&nbsp;:=<br>//&nbsp;用&nbsp;string.Format&nbsp;不如直接用&nbsp;Format()</div><br><br>
来源:https://www.cnblogs.com/qiufeng2014/p/16978764.html
頁: [1]
查看完整版本: Delphi(lazarus) TStringHelper用法详解(转载)