我正在扩展我的一类用于存储通用大小字符串,以便为用户输入提供更灵活的值.例如,我这个类的先前版本是严格的,只允许格式为2×3或9×12.但现在我正在制作它,因此它可以支持2 x 3或9
我想弄清楚的真正问题是如何检测字符串中的一个字符是大写还是小写?因为我必须检测区分大小写.如果deliminator是’x'(小写)并且用户在值内输入’X'(大写),并且关闭区分大小写,我也需要能够找到相反的情况.
我的意思是,Pos()函数区分大小写…
Delphi 7具有字符串的UpperCase()和LowerCase()函数.还有UpCase()用于字符.如果我想在另一个字符串不敏感的情况下搜索子字符串,我这样做:
if Pos('needle', LowerCase(hayStack)) > 0 then
您只需使用小写字符串文字(或常量),并在搜索之前对字符串应用小写函数.如果您要进行大量搜索,那么将一次转换为临时变量是有意义的.
这是你的情况:
a := '2 x 3'; // Lowercase x b := '9 X 12'; // Upper case X x := Pos('x', LowerCase(a)); // x = 3 x := Pos('x', LowerCase(b)); // x = 3
要查看字符是高还是低,只需将其与UpCase版本进行比较:
a := 'A'; b := 'b'; upper := a = UpCase(a); // True upper := b = UpCase(b); // False