/ रूबी में रूई पर स्ट्रिंग हेरफेर और कंक्रीटिंग - रूबी, स्ट्रिंग, रूबी-ऑन-रेल्स। 3.2

रूबी पर रेलिंग में हेरफेर और कंक्रीटिंग - रूबी, स्ट्रिंग, रूबी-ऑन-रेल्स - 3.2

मेरे पास एक स्ट्रिंग है:

"/system/path/513/b02/36a/66ea2557[*,0].swf,16"

मैं अपने आवेदन के लिए पटरियों पर रूबी का उपयोग कर रहा हूं। मैं कुछ पाने के लिए 66ea2557 के अंत में 1-16 जोड़कर 16 यूआरएल बनाने की कोशिश कर रहा हूं:

"/system/path/513/b02/36a/66ea25571.swf"
"/system/path/513/b02/36a/66ea25572.swf"
..
"/system/path/513/b02/36a/66ea255715.swf"
"/system/path/513/b02/36a/66ea255716.swf"

रूबी में मैं यह कैसे कर सकता हूं?

उत्तर:

जवाब के लिए 2 № 1

मानाकि:

  • आपको दिया गया है "/system/path/513/b02/36a/66ea2557[*,0].swf,16" कहीं से शायद आपके नियंत्रण से बाहर और इसे पार्स करने की आवश्यकता है
  • जो नंबर 16 स्ट्रिंग के अंत में "हर बार समान होना जरूरी नहीं है और आपके द्वारा आवश्यक url की संख्या को दर्शाता है
  • आपको जरूरत नहीं है [*,0] कुछ के लिए स्ट्रिंग का हिस्सा है और यह जरूरी नहीं है कि कुछ भी दर्शाता है

मेरे द्वारा लाया गया:

string = "/system/path/513/b02/36a/66ea2557[*,0].swf,16"
base_path, _, file_extension, num_urls = string.split(/([*,0])|,/)
# => ["/system/path/513/b02/36a/66ea2557", "[*,0]", ".swf", "16"]
(1..num_urls.to_i).map { |i| "#{base_path}#{i}#{file_extension}" }
# => ["/system/path/513/b02/36a/66ea25571.swf",
"/system/path/513/b02/36a/66ea25572.swf",
...
"/system/path/513/b02/36a/66ea255716.swf"]

जवाब के लिए 0 № 2
(1..16).each do |i|
puts "/system/path/513/b02/36a/66ea2557#{i}.swf"
end

जवाब के लिए 0 № 3

आप सरल लूपिंग की कोशिश कर सकते हैं। कुछ इस तरह:

#test.rb

arr = Array.new();
for i in 1..16
arr[i-1] = "/system/path/513/b02/36a/66ea2557" + i.to_s;
end

puts arr;

जवाब के लिए 0 № 4

आप उपयोग कर सकते हैं स्ट्रिंग #%:

path = "/system/path/513/b02/36a/66ea2557%s.swf"
(1..16).map {|index| path % index}