Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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是否有一个内置的string.startswith(";abc";)方法?_Ruby - Fatal编程技术网

Ruby是否有一个内置的string.startswith(";abc";)方法?

Ruby是否有一个内置的string.startswith(";abc";)方法?,ruby,Ruby,Ruby是否有一个字符串。以内置的(“abc”)方法开始?您的问题标题和问题正文是不同的。Ruby没有一个启动程序?方法。然而,正如sepp2k所说,作为Ruby框架的Rails确实如此。请参阅他对答案的评论,以获取相关文档的链接 不过,您可以始终使用正则表达式: if SomeString.match(/^abc/) # SomeString starts with abc ^在正则表达式中表示“字符串的开头”您可以使用string=~Regex。它返回字符串中完全正则表达式匹配的位

Ruby是否有一个
字符串。以内置的(“abc”)
方法开始?

您的问题标题和问题正文是不同的。Ruby没有一个启动程序?方法。然而,正如sepp2k所说,作为Ruby框架的Rails确实如此。请参阅他对答案的评论,以获取相关文档的链接

不过,您可以始终使用正则表达式:

if SomeString.match(/^abc/) 
   # SomeString starts with abc

^
在正则表达式中表示“字符串的开头”

您可以使用
string=~Regex
。它返回字符串中完全正则表达式匹配的位置

irb> ("abc" =~ %r"abc") == 0
=> true
irb> ("aabc" =~ %r"abc") == 0
=> false

它被称为,而不是
String#startswith
:在Ruby中,布尔ish方法的名称以
结尾,方法名称中的单词以
分隔。不确定
s
去了哪里,我个人更喜欢
String#start#u with?
而不是实际的
String#start#u with?

如果这是用于非Rails项目,我会使用
String#index

"foobar".index("foo") == 0  # => true

我认为subject+bods组合的意思是“Ruby没有starts\u with method.Does rails?”@sepp2k,但它是
在问题标题中)字符串的start\u with?由于ruby 1.9()@steenslag-ruby 1.8.7也以?-在用字符串文本构建正则表达式时要小心——记住转义任何特殊字符。有一个函数表示fi字符串的文字可能是不可预测的Matz说他更喜欢没有s,因为它看起来像是第二人称单数或第三人称复数?是在ruby 1.8.7和1.9.0中引入的-对于旧版本,您可能希望使用其他答案中提到的正则表达式或索引版本之一。在Rails中,您可以使用字符串#start_with?@拟人化;这是String#start_with?@andrewgrim的别名唯一的问题是“a String”是第三人称单数!相关问题:顺便问一句,你是在问Ruby还是Rails?不过,这会更需要性能,在这种情况下,
start\u with?
方法可以简单地确认字符串的开头与给定字符串匹配,从而最多处理n个字符,其中n是给定字符串的长度,而
index
必须搜索整个基字符串。在失败的情况下,
以?
开始将进行一次访问(每个字符串)和比较,而
索引
将遍历基本字符串的几乎整个长度。请尽可能使用
/
而不是
%r