2016-05-22 5 views
7

मैं डेटाबेस से एक स्ट्रिंग पढ़ना चाहता हूं और प्लेसहोल्डर को इसे एक GString में परिवर्तित करके प्रतिस्थापित करना चाहता हूं। क्या मैं इसे इवल के साथ कर सकता हूं? कोई अन्य विचार?स्ट्रिंग से जीस्ट्रिंग को परिवर्तित करने और ग्रोवी में प्लेसहोल्डर को बदलने के लिए कैसे?

String stringFromDatabase = 'Hello ${name}!' 
String name = 'world' 

assert 'Hello world!'== TODO 
+0

http://stackoverflow.com/questions/36805214/evaluating-value-of-an-expression-as-expression-in-groovy/36806883#36806883 –

उत्तर

0

यदि आप प्लेसहोल्डर का उपयोग करना चाहते हैं तो आपको डबल उद्धृत स्ट्रिंग अक्षर का उपयोग करना चाहिए।

निम्नलिखित काम करना चाहिए:

String name = 'world' 
String stringFromDatabase = "Hello ${name}!" //use double quotes 

assert 'Hello world!' == stringFromDatabase 

official Groovy documentation about Strings देखें अन्य तरीकों से आप यह काम कर सकते हैं देखने के लिए।

+0

यह काम कर रहा है। लेकिन मेरा stringFromDatabase डेटाबेस से ऑब्जेक्ट को पढ़कर बनाया गया है जिसके परिणामस्वरूप स्ट्रिंग: –

+0

छद्म कोड: 'def टेम्पलेट FromDatabase = Template.get (123); def stringFromDatabase = templateFromDatabase.source; स्ट्रिंग फ़्रेमडेटाबेस उदाहरण स्ट्रिंग का दावा करें; // सच ... TODO' –

8

आप ग्रूवी में खाका ढांचे का उपयोग कर सकते हैं, तो यह कर आपकी समस्या नहीं सुलझती:

String stringFromDatabase = 'Hello ${name}!' 
String name = 'world' 

def engine = new groovy.text.SimpleTemplateEngine() 
assert 'Hello world!'== engine.createTemplate(stringFromDatabase).make([name:name]).toString() 

आप डॉक्स यहाँ पा सकते हैं: http://docs.groovy-lang.org/latest/html/documentation/template-engines.html#_introduction

gstring वर्ग सार है, और के GStringImpl कार्यान्वयन सार वर्ग तारों के सरणी पर काम करता है, यह मूल्यों के साथ पार्सिंग चरण से मिलता है।

संबंधित मुद्दे

 संबंधित मुद्दे