string - 如何检测字符串中的字符是大写还是小写?

标签 string delphi parsing delphi-7

我正在扩展我的一个类,用于存储通用大小字符串,以允许用户输入更灵活的值。例如,我以前的此类版本很严格,只允许 2x39x12 的格式。但现在我正在制作它,以便它可以支持诸如 2 x 39 X 12 之类的值,并在值发生更改时自动维护原始用户的格式。

我想弄清楚的真正问题是如何检测字符串中的一个字符是大写还是小写?因为我必须检测区分大小写。如果分隔符是“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

要查看某个字符是大写还是小写,只需将其与它的大写版本进行比较即可:

a := 'A';
b := 'b';

upper := a = UpCase(a); // True
upper := b = UpCase(b); // False

关于string - 如何检测字符串中的字符是大写还是小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8394241/

相关文章:

delphi - TNotebook 或 TPageControl

c++ - 给定文件系统路径名,如何检索对应的 ABSOLUTE ITEMIDLIST?

c++ - 如何解析嵌套数组?

html - linux 中是否有一种简单的方法可以从命令行中删除文本网站?

delphi - 转换Delphi 7代码以与Delphi 2009一起使用

ios - 解析 - 用户在创建帐户手册后尝试使用 FB 登录 - iOS

string - 使用 SwiftUI 在 UserDefaults 中保存来自 TextField 的字符串

php - PHP中可以操作echo来写入文件吗

sql-server - 替换单个字符的模式

python - 如何在列表中创建列表,其中每个 future 列表都由列表中的空格分隔