Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要Ruby子字符串解释_Ruby_String_Substring - Fatal编程技术网

需要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