需要Ruby子字符串解释
我有两个字符串需要Ruby子字符串解释,ruby,string,substring,Ruby,String,Substring,我有两个字符串str1='abab'和str2='ba'。如果我这样做 str1.include? str2 我得到了真值。当我这样做的时候 str2.include? str1 为什么我会得到false 如果str2位于2位置,即str1[2..3]==str2,我应该如何找到它是否是str1的子字符串?什么是子字符串? 字符串的子字符串是出现在“中的另一个字符串 按照上述定义: 'ba'出现在'abbab'中,因此'ba'是'abbab'的子字符串 现在换个角度看: 'abab'是否出现
str1='abab'
和str2='ba'
。如果我这样做
str1.include? str2
我得到了真值
。当我这样做的时候
str2.include? str1
为什么我会得到false
如果
str2
位于2
位置,即str1[2..3]==str2
,我应该如何找到它是否是str1
的子字符串?什么是子字符串?
字符串的子字符串是出现在“中的另一个字符串
按照上述定义:
'ba'
出现在'abbab'
中,因此'ba'
是'abbab'
的子字符串
现在换个角度看:
'abab'
是否出现在'ba'
内部?不。所以'abbab'
不是'ba'
的子字符串
如何查找str2
是否是str1
的子字符串
通过这样做:
str1.include? str2 #true
如何找到str1
是str2
的子字符串
:
如果str包含给定的字符串或字符,则返回true
例如:
=> "foobar".include? "bar"
#> true
=> "bar".include? "foobar"
#> false
感谢您回答shivam,但为什么str2不是str1的子字符串,而str1即“ba”位于位置2-3上的str1即“abab”中?因为“字符串的子字符串是”中出现的另一个字符串。用类比来解释它——“印度在亚洲?=>正确”,“亚洲在印度?=>错误”谢谢你,明白了。我在想,子字符串的一部分也应该返回true,因为abbab确实有ba,但由于ba也出现在abbab中,所以应该双向返回true。感谢您的澄清Rails/ActiveSupport提供了一个方法:
str2.in?str1#=>真
x.include?y
表示x是否包括y?。因此,如果y是x的子串,x.include?y
将返回true
<代码>y.include?x将返回false
,除非x也是y的子字符串,也就是x==y
。不知道是从哪里来的。@YuHao,更像是1
include? other_str → true or false
=> "foobar".include? "bar"
#> true
=> "bar".include? "foobar"
#> false