2014-03-02 84 views

回答

1

試試這個:

def only_0_and_1(str) 
    return !!(str =~ /^(0|1)+$/) 
end 
+0

這一個也適用。謝謝! – Tripon

3

使用Regexp#===

s = '11er0' 
# means other character present except 1 and 0 
/[^10]/ === s # => true 

s = '1100' 
# means other character not present except 1 and 0 
/[^10]/ === s # => false 

這裏有一個方法:

def only_1_and_0(s) 
    !(/[^10]/ === s) 
end 

only_1_and_0('11012') # => false 
only_1_and_0('1101') # => true 
+0

這一個爲我工作。謝謝! – Tripon

0

下面假設你的方法將總是收到一個字符串;它不執行任何強制或類型檢查。隨意添加,如果你需要它。

def binary? str 
    ! str.scan(/[^01]/).any? 
end 

這將掃描零個或一個使用String#scan以外的任何字符的字符串,然後返回一個布爾反轉計算結果爲如果爲假Enumerable#any?是真實的,這意味着其他字符存在於串英寸例如:

binary? '1011' 
#=> true 

binary? '0b1011' 
#=> false 

binary? '0xabc' 
#=> false 
0

另一種方式來做到這一點:

str.chars.any?{|c| c!='0' && c!='1'} 
0
def binary? 
    str.count("^01").zero? 
end 
相關問題