如何使用 TStringHelper 测试两个字符串是否不区分大小写?
How to test two strings for ordinal case-insensitive equality using TStringHelper?
我可能忽略了一些东西,但似乎没有像这样的内置函数:
var
B: Boolean;
S: string;
begin
S := 'Test';
B := S.SameText('TEST');
Assert(B);
end;
.NET 有一个 three parameter version for Equals:
string.Equals(S, "TEST", StringComparison.OrdinalIgnoreCase);
我能想到的两个版本是:
// Ordinal?
string.CompareText(S, 'TEST') = 0
// Culture specific
string.Compare(S, 'TEST', True, TLanguages.UserDefaultLocale)
让我失望的是我必须与 0 进行比较,而不是旧的 SameText
:
SameText(S, 'TEST')
Embarcadero 是否忽略了在 TStringHelper
上提供 SameText
?
Did Embarcadero overlook to provide a SameText on TStringHelper?
是的。
AnsiCompareText - 根据当前语言环境比较字符串,不区分大小写。
我可能忽略了一些东西,但似乎没有像这样的内置函数:
var
B: Boolean;
S: string;
begin
S := 'Test';
B := S.SameText('TEST');
Assert(B);
end;
.NET 有一个 three parameter version for Equals:
string.Equals(S, "TEST", StringComparison.OrdinalIgnoreCase);
我能想到的两个版本是:
// Ordinal?
string.CompareText(S, 'TEST') = 0
// Culture specific
string.Compare(S, 'TEST', True, TLanguages.UserDefaultLocale)
让我失望的是我必须与 0 进行比较,而不是旧的 SameText
:
SameText(S, 'TEST')
Embarcadero 是否忽略了在 TStringHelper
上提供 SameText
?
Did Embarcadero overlook to provide a SameText on TStringHelper?
是的。
AnsiCompareText - 根据当前语言环境比较字符串,不区分大小写。