2012-11-17 4 views
13

में वास्तविक% के साथ स्ट्रिंग इंटरपोलेशन इस से निपटने का सही तरीका क्या है?स्ट्रिंग

"Hi %s, today is %s so you get 10% OFF!" % ['Joe', 'Monday'] 
# => ArgumentError: malformed format string - %O 

मैं उपयोग नहीं कर सकते सामान्य %{keyname} या #{code} क्योंकि मैं यूआरएल के लिए तार को पार्स कर रहा हूँ और उन्हें बाहर अलग करना तो मैं उन्हें वापस छड़ी कर सकते हैं विभिन्न स्वरूपों में (साथ/प्रोटोकॉल, छोटा, पूर्ण लंबाई, आदि के बिना) । तो प्रतिस्थापन की संख्या अज्ञात है और उनके पास नाम नहीं हैं। वे सिर्फ यूआरएल की एक सरणी हैं।

मैं भी % भागने की कोशिश की:

"Hi %s, today is %s so you get 10\% OFF!" % ['Joe', 'Monday'] 
# => ArgumentError: malformed format string - %O 

लेकिन सटीक एक ही परिणाम मिलता है।

उत्तर

27

दो% की

>> "Hi %s, today is %s so you get 10%% OFF!" % ['Joe', 'Monday'] 
=> "Hi Joe, today is Monday so you get 10% OFF!" 
+1

शॉन! धन्यवाद कि महान काम करता है! यह दस्तावेज कहां है? – eagspoo

+1

स्ट्रिंग क्लास पर दस्तावेज़ों में आपको सभी स्वरूपण विकल्पों के लिए कर्नेल :: sprintf पर इंगित किया गया है। यह sprintf कार्यान्वयन में बहुत सार्वभौमिक है। –

+0

यहां कर्नेल :: स्प्रिंटफ दस्तावेज़ है: http://www.ruby-doc.org/core-1.9.3/Kernel.html#method-i-sprintf –

1
"Hi %s, today is %s so you get 10%% OFF!" % ['Joe', 'Monday'] 
संबंधित मुद्दे