【问题标题】:Search in TStrings在 TStrings 中搜索
【发布时间】:2012-12-23 22:44:46
【问题描述】:

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

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

【问题讨论】:

  • 您是否希望能够找到“您好!”作为短语的一部分,例如如果“你好!世界”,或“嗨,你好!”在列表中,或仅当“您好!”时是唯一的词吗?
  • 您好!只是一个示例字符串。任何字符串。
  • 我的意思是你想查找搜索短语是否是TStrings.Strings 属性中字符串之一的子字符串
  • 你真的需要更清楚你的问题。这个比较模糊,因为您没有解释是要查找包含特定文本的单独行,还是要在TStrings 的内容中的任何位置查找特定文本。

标签: delphi delphi-xe2


【解决方案1】:

在 TStrings 文本属性上使用 pos 函数:

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

如果字符串出现在 TStrings 中的任何位置,这将找到该字符串。要找到它出现的字符串,您需要遍历对每个字符串应用 pos 函数的字符串。

【讨论】:

    【解决方案2】:

    可以使用TStrings的IndexOf函数

    if Strings.IndexOf('Hello')<>-1 then
        caption:='Found';
    

    如果没有找到字符串,这个函数返回-1, 否则返回该字符串在 TStrings 中的索引;

    【讨论】:

    • 不会满足 Santos 的需要,即查找给定文本是否在任何文本行中的任何地方找到,即使它只是一个文本的一部分线。此方法假定整行与给定文本匹配。
    • 在 C++ 中,这帮助我确定来自 TComboBox->Items 的 TStrings 列表是否准确包含给定的字符串。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 2018-05-01
    • 2018-02-13
    • 1970-01-01
    相关资源
    最近更新 更多