2011-09-28 12 views
52

का हिस्सा प्राप्त करें, मुझे QString अन्य QString से प्राप्त करना है, जब मुझे आवश्यक अनुक्रमणिका पता है। उदाहरण के लिए: मुख्य स्ट्रिंग: "यह एक स्ट्रिंग है"। मैं पहले 5 प्रतीकों से नया QString बनाना चाहता हूं और "यह" प्राप्त करना चाहता हूं।
इनपुट: पहला और अंतिम चार नंबर।
आउटपुट: नया QStringक्यूटी। QString

इसे कैसे बनाएं?

पीएस इतना ही नहीं पहले कई पत्र भी तक 8.

उत्तर

35

उपयोग left समारोह 5 से रेखा के मध्य, उदाहरण के लिए से: यदि आप अधिक नियंत्रण चाहते हैं तो

QString yourString = "This is a string"; 
QString leftSide = yourString.left(5); 
qDebug() << leftSide; // output "This " 

इसके अलावा mid() पर एक नजर है।

80

यदि आपको सबस्ट्रिंग को संशोधित करने की आवश्यकता नहीं है, तो आप QStringRef का उपयोग कर सकते हैं। QStringRef कक्षा मौजूदा QString के आस-पास एक पठन केवल रैपर है जो मौजूदा स्ट्रिंग के भीतर एक सबस्ट्रिंग का संदर्भ देता है। उप-स्ट्रिंग रखने के लिए नया QString ऑब्जेक्ट बनाने से यह बेहतर प्रदर्शन प्रदान करता है। जैसे

QString myString("This is a string"); 
QStringRef subString(&myString, 5, 2); // subString contains "is" 

आप अपने दूसरे उदाहरण में सबस्ट्रिंग संशोधित करने के लिए है, तो left(), mid() और right() आपको क्या चाहिए क्या करेंगे ...

QString myString("This is a string"); 
QString subString = myString.mid(5,2); // subString contains "is" 
subString.append("n't"); // subString contains "isn't" 
+1

की जरूरत है, तो आप कर सकते हैं: QStringRef-स्ट्रिंग = myString .midRef (5,2); – Keith

+0

@ किथ अच्छा बिंदु, हालांकि आप QStringRef को संशोधित नहीं कर सकते हैं। – Alan

+1

ध्यान दें कि 'QStringRef' का उपयोग करना एक अनुकूलन है जो अतिरिक्त जटिलता के साथ आता है। जब तक आप भारी स्ट्रिंग मैनिप्लेशंस नहीं कर रहे हैं, और आपको वास्तव में अनुकूलन से लाभ होगा (ज्यादातर मामलों में, आप नहीं करेंगे), यह 'क्यूस्ट्रिंग' का उपयोग करने के लिए सुरक्षित और सरल है। –

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