如何在Delphi中检查字符串是否包含子字符串?

30
String content = "Jane";
String container = 'A.Sven,G.Jane,Jack'; // This is the string which i need to be searched with string content

boolean containerContainsContent = StringUtils.containsIgnoreCase(container, content); // 我曾经在Java中这样写

我是Delphi的新手。是否有Delphi中的contains命令或任何执行相同操作的其他命令?


如果 s.ToUpper.Contains(a.ToUpper) 那么就是区分大小写的 Delphi 字符串助手吗? - Akella225
2个回答

65

你可以在 Delphi 中使用 StrUtils 函数。

uses
  StrUtils;
..
    if ContainsText('A.Sven,G.Jane,Jack', 'Jane') then 
    ...

ContainsText会在给定的文本中进行不区分大小写的搜索,如果找到了子字符串,则返回true

StrUtils中,您还可以找到方便的函数,如StartsTextEndsTextReplaceText


谢谢,我正在使用类似以下的代码: if Pos(content , container ) > 0 then showmessage('存在') else showmessage('不存在'); 但是是否有其他方法? - delsql
1
我不理解你的问题,因为这在Java中是这样的。 - Jens Borrisholt
3
@delsql,你有点把事情搞糟了。请不要在评论回答时提出新问题。如果你需要的不是containsIgnoreCase,那就需要提一个新问题了。 - David Heffernan
8
FWIR中提到的Delphi 7中的ContaintsText仅适用于拉丁字符集。如果@delsql想要比较一些国际字符(希腊语、俄语等),他应该使用AnsiContainsText - Arioch 'The
2
对于ContainsText函数,针是第二个参数,而不是第一个。例如: 如果包含文本('A.Sven,G.Jane,Jack','Jane'),则 - Optavius

5
您可能会发现下面的System.SysUtils中的Contains函数也很有帮助。
uses
  Sysytem.SysUtils;

....
  txt := 'This is a string variable';

  if txt.contains('str') then
....

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接