如何在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
相关产品推荐
相关产品推荐

