2010-10-23 20 views
0
filename = filename.gsub("_"," ").nil? ? filename.gsub("_"," ") : filename 

回答

5
filename = filename.gsub("_", " ") 

或者,如果它的確定變異的字符串:

filename.gsub!("_", " ") 

檢查gsub回報是否爲零是完全沒有必要的 - gsub永遠不會返回nilgsub!返回nil如果沒有更改,但如果您使用gsub!,則通常不關心返回值。

另外請注意,你給的代碼將總是返回filename不變,因爲你混了then - 和else -part您?:的。

+0

Ruby文檔說:執行到位串#GSUB,返回海峽,或零的換人,如果沒有換人進行 – auralbee 2010-10-23 16:19:27

+0

@auralbee :你正在混淆'gsub!'和'gsub'。您引用了'gsub!'的文檔,但是您在代碼中使用了'gsub'。 'gsub'永遠不會返回'nil','gsub!'呢。 – sepp2k 2010-10-23 16:20:05

+0

你是對的!我有點困惑!謝謝 – auralbee 2010-10-23 16:22:16

0

基本上,只是

filename.gsub!("_", " ") 

或者,

filename = filename.split("_").join(" ")