在TStrings中搜索

4

我该如何检查一个特定的字符串是否存在于 TStrings 中?例如,我有一个包含大量文本的 TStrings,我想要检查字符串“Hello!”是否在这个文本中出现。

“Hello!”只是一个示例字符串。它可以是任何东西。该字符串可以在其他字符串之间,比如“something Hello! something”。


1
你想要在短语中找到“Hello!”吗?例如,如果列表中包含“Hello!World”或“Hi,Hello!”等内容,还是只有“Hello!”这个单词时才能找到? - Gerry Coll
1
你好!只是一个示例字符串.. 任何字符串。 - Santos Oliveira
我是说你想要查找搜索短语是否为TStrings.Strings属性中某个字符串的子字符串。 - Gerry Coll
4
请更明确你的问题,这个问题很含糊,因为你没有解释你是想查找包含特定文本的单独行,还是想在TStrings的整个内容中查找特定的文本。请注意,我的翻译不会改变原始意思。 - Ken White
2个回答

8

使用TStrings的text属性上的pos函数:

if pos('Hello!', strings.text) > 0 then
begin
end

如果该字符串在TStrings中出现,则将找到它。要查找包含该字符串的字符串,您需要迭代遍历字符串,并在每个字符串上应用pos函数。


4
您可以使用TStrings的IndexOf函数。
if Strings.IndexOf('Hello')<>-1 then
    caption:='Found';

如果未找到该字符串,此函数将返回-1;否则,它将返回TStrings中该字符串的索引。


1
这种方法不适用于Santos需要的,他需要查找给定文本是否出现在任何文本行中的任何位置,即使它只是一行的一部分。该方法假定整行与给定文本匹配。 - Jerry Dodge
1
在C++中,这帮助我确定TComboBox->Items的TStrings列表是否完全包含给定的字符串。谢谢! - Bizmarck

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