Ich möchte sehen, ob ein String hat Leerzeichen in ihm. Was ist der effektivste Weg, dies in Ruby zu tun?Sehen Sie, wenn ein Rubin String Whitespace enthält
Dank
Ich möchte sehen, ob ein String hat Leerzeichen in ihm. Was ist der effektivste Weg, dies in Ruby zu tun?Sehen Sie, wenn ein Rubin String Whitespace enthält
Dank
Wenn Sie mit "Leerraum" im Sinne von "Regulärer Ausdruck" meinen, dass Leerzeichen, Tabulatoren, Zeilenumbrüche, Wagenrücklauf oder (ich denke) Form-Feed sind, funktioniert jede der angegebenen Antworten:
s.match(/\s/)
s.index(/\s/)
s =~ /\s/
oder auch (nicht vorher erwähnt)
s[/\s/]
Wenn Sie nur daran interessiert sind für ein Leerzeichen in der Überprüfung, dann versuchen Sie Ihre Präferenz von
s.match(" ")
s.index(" ")
s =~//
s[" "]
Von irb (Rubin 1.8.6):
s = "a b"
puts s.match(/\s/) ? "yes" : "no" #-> yes
puts s.index(/\s/) ? "yes" : "no" #-> yes
puts s =~ /\s/ ? "yes" : "no" #-> yes
puts s[/\s/] ? "yes" : "no" #-> yes
s = "abc"
puts s.match(/\s/) ? "yes" : "no" #-> no
puts s.index(/\s/) ? "yes" : "no" #-> no
puts s =~ /\s/ ? "yes" : "no" #-> no
puts s[/\s/] ? "yes" : "no" #-> no
some_string.match(/\s/)
Ich genieße wirklich Zählung für diese Verwendung.
"hello 1".count("") #=> 0
"hello 1".count(" ") #=> 1
" hello 1".count(" ") #=> 2
"hello 1".count(" ") > 0 #=> true
Dieses Update brachte [String # match?] (Http://ruby-doc.org/core-2.4.1/String.html#method-i-match-3F) in Ruby v2 auf den Markt .4, so kann man jetzt auch 's.match? (/ \ S /)' schreiben. –