0

私は2つの弦を持っています。1つは:

"/system/musics/videos/000/000/001/original/%E5%B9%BF%E5%9C%BA%E8%88%9E%E5%BF%AB%E5%9B%9B_-_%E5%A4%A7%E8%8D%89%E5%8E%9F-%E4%BE%AF%E6%AD%8C.MP3"

2つ目は次のとおりです。

"广场舞快四_-_大草原-侯歌.MP3"

私は手に入れたい:

"/system/musics/videos/000/000/001/original/广场舞快四_-_大草原-侯歌.MP3"

ルビーの文字列を見つけて置き換える方法を知っている人はいますか?私の考えは、最後の文字列の後の内容を2番目の文字列に置き換えること'/'です。どうすればいいですか?

4

2 に答える 2

3
first_string = "/system/musics/videos/000/000/001/original/%E5%B9%BF%E5%9C%BA%E8%88%9E%E5%BF%AB%E5%9B%9B_-%E5%A4%A7%E8%8D%89%E5%8E%9F-%E4%BE%AF%E6%AD%8C.MP3"
second_string = "广场舞快四-_大草原-侯歌.MP3"

"#{File.dirname(first_string)}/#{second_string}"
于 2013-03-18T06:58:43.683 に答える
0

ファイル名を処理する場合、特にコードが複数のオペレーティングシステムで使用される可能性がある場合は、組み込みのファイル名操作メソッドdirnameを使用してjoinください。

File.join(
  File.dirname(
    "/system/musics/videos/000/000/001/original/%E5%B9%BF%E5%9C%BA%E8%88%9E%E5%BF%AB%E5%9B%9B_-_%E5%A4%A7%E8%8D%89%E5%8E%9F-%E4%BE%AF%E6%AD%8C.MP3"
  ),
  "广场舞快四_-_大草原-侯歌.MP3"
)

その理由は、File.joinFile.dirnameのおかげで、特定のOSで使用されるファイル名区切り文字を認識しておりFile::SEPARATORFile::ALT_SEPARATORパスを正しく分割して結合できるようにするためです。

また、多くの場合File.basenameFile.extname便利です。

于 2013-03-18T08:26:55.673 に答える