You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Crystal Lang中检查字符串是否包含于子字符串?未找到对应API方法

在Crystal Lang中检查字符串是否包含子串的方法

嘿,在Crystal里检查字符串是否包含特定子串其实很简单,只是它的方法名和你熟悉的contains/search不太一样,下面给你介绍几种常用的方式:

1. 使用includes?方法(最直接)

这是Crystal专门用来判断子串是否存在的方法,返回布尔值true或false,用法非常直观:

main_string = "I love Crystal programming"
sub_string = "Crystal"

# 检查是否包含子串
puts main_string.includes?(sub_string)  # 输出: true
puts main_string.includes?("Python")    # 输出: false

如果需要忽略大小写进行匹配,可以先把两个字符串统一转为小写(或大写)再判断:

main_string.downcase.includes?(sub_string.downcase)

2. 使用index方法

index方法会返回子串在主字符串中的起始索引位置(整数),如果子串不存在则返回nil。你可以利用这一点来判断是否包含子串:

if main_string.index(sub_string)
  puts "主字符串包含该子串"
else
  puts "主字符串不包含该子串"
end

# 或者直接用布尔判断
puts main_string.index(sub_string) !nil?  # 存在则输出 true

3. 正则匹配(复杂场景)

如果你的匹配需求更复杂(比如需要匹配特定模式的子串),可以使用match?方法结合正则表达式:

# 检查是否包含数字
puts "Crystal 2024".match?(/\d+/)  # 输出: true
# 检查是否包含大写字母开头的单词
puts "hello Crystal".match?(/[A-Z]\w+/)  # 输出: true

内容的提问来源于stack exchange,提问作者dkimot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:09:05