2009-11-30 18 views
49

स्केल में स्ट्रिंग के अंत से अंतिम वर्ण को हटाने का सबसे आसान तरीका क्या है?स्ट्रिंग स्कैला के अंत से वर्ण हटाएं

मुझे लगता है कि रूबी स्ट्रिंग क्लास में काट बहुत उपयोगी तरीके हैं। मैं "oddoneoutz" का उपयोग किया होता था। Scala में headOption, लेकिन यह अवमूल्यन है। मैं अत्यधिक जटिल में नहीं जाना चाहता:

string.slice(0, string.length - 1) 

कृपया कोई मुझे बताएं कि इस सामान्य चीज़ को काटने जैसी एक अच्छी सरल विधि है।

उत्तर

97

कैसे dropRight है, जो 2.8 में काम करता है उपयोग के बारे में: -

"abc!".dropRight(1) 

कौन सा "abc" पैदा करता है

+0

सबसे संक्षिप्त मैं 2.7 के लिए साथ आने कर सकते हैं। विभाजन मुझे 2.8 :) –

+3

उफ़ मेरा मतलब है" abc "। विभाजन! ("। $ ") (0) –

+0

बहुत बढ़िया धन्यवाद डॉन, –

4
string.reverse.substring(1).reverse 

यह मूल रूप से काटता है, है ना? यदि आप एक काट विधि के लिए उत्सुक हैं, तो अपनी खुद की StringUtils लाइब्रेरी क्यों न लिखें और इसे तब तक अपनी परियोजनाओं में शामिल न करें जब तक आप एक उपयुक्त, अधिक सामान्य प्रतिस्थापन न पाएं?

हे, देखो, यह कॉमन्स में है।

Apache Commons StringUtils

+3

यह निश्चित रूप से स्टीफन है। मैं एक विधि की उम्मीद कर रहा था कि जब आप कोड को देखते हैं, तो आप समझते हैं कि क्या हो रहा है :) मैं जो कह रहा हूं वह है: "स्ट्रिंग से अंतिम वर्ण को हटाने" के रूप में सरल कुछ के लिए reverse.substring (1)। भ्रामक। उत्तर –

+0

के लिए धन्यवाद प्लस आपको एक रिवर्स विधि प्राप्त करने के लिए स्ट्रिंगबिल्डर में स्ट्रिंग को लपेटने की आवश्यकता होगी। –

+2

पहला हिस्सा ज्यादातर मजाक था: पी। आपके स्कैला को देखकर कोई भी जावा प्रोग्रामर स्ट्रिंगयूट्स से परिचित होना चाहिए, या कम से कम अपाचे कॉमन्स लाइब्रेरी को आयात देखने और नाराज होने के बारे में पता होना चाहिए। कॉमन्स उपयोगी है, और जहां भी संभव हो इसका इस्तेमाल किया जाना चाहिए। मैंने पाया है कि अधिकांश परियोजनाओं में किसी बिंदु पर कॉमन्स शामिल होते हैं, इसलिए लाइब्रेरी का उपयोग करने के लिए आम तौर पर कोई खर्च नहीं होता है। आप अपने स्केल कार्यक्रमों में एस के रूप में स्ट्रिंगयूल्ट्स को भी उपनाम कर सकते हैं और इसे su.chop (str) के रूप में संदर्भित कर सकते हैं, जो बहुत संक्षिप्त है और सबस्ट्रिंग का उपयोग करने के रूप में चूसने वाला नहीं है। –

7
val str = "Hello world!" 
str take (str.length - 1) mkString 
+0

+1 पर अपग्रेड करना होगा, धन्यवाद @ डैनियल स्पिविक; मुझे "स्ट्र ड्रॉप (स्ट्र। लम्बाई -4)" का नेतृत्व किया, मुझे क्रेडिट कार्ड के आखिरी 4 मिलते हैं, जो मुझे चाहिए ;-) – virtualeyes

11
string.init // padding for the minimum 15 characters 
+0

धन्यवाद वाल्टर, यह बिल्कुल सही तरीका है जिसे मैंने सोचा था कि स्कैला होगा। फिर ये सभी अच्छी विधियां केवल 2.8 हैं, इसलिए यहां अपग्रेड करें :) –

1

आप सबसे कारगर समाधान चाहते हैं की तुलना में सिर्फ का उपयोग करें:

str.substring(0, str.length - 1) 
संबंधित मुद्दे