स्ट्रिंग स्ट्रिंग के अंत से वर्ण हटाएं


82

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

मुझे लगता है रूबी स्ट्रिंग क्लास में चॉप जैसी कुछ बहुत उपयोगी विधियाँ हैं । मैंने "ऑडोनॉटआउट" का उपयोग किया होगा। स्काला में हेडऑप्शन, लेकिन यह मूल्यह्रास है। मैं अत्यधिक जटिल में नहीं जाना चाहता:

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

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

जवाबों:


156

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

"abc!".dropRight(1)

जो "एबीसी" का उत्पादन करता है


1
मैं 2.7 के लिए सबसे अधिक आयत कर सकता हूं, "abc!" है। विभाजन ("। $) (0)
डॉन मैकेंजी

3
उफ़ मेरा मतलब है "abc!"। विभाजन ("। $") (0)
डॉन मैकेंज़ी

बहुत बढ़िया धन्यवाद डॉन, मुझे 2.8 :) में अपग्रेड करना होगा
BefittingTheorem

13
string.init // padding for the minimum 15 characters

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

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

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


4
string.reverse.substring(1).reverse

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

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

अपाचे कॉमन्सStringUtils


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

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

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

बहुत बुरा है StringUtils के लिए एक निहित बहुत काम होगा। विस्तार के तरीकों के बारे में स्काला उपयोगकर्ताओं और जावा उपयोगकर्ताओं के सोचने के तरीके के बीच बस बेमेल को दर्शाता है।
केन ब्लूम

import org.apache.commons.blah। {StringUtils => su} बहुत काम है? जैसा कि मैंने कहा, आदर्श रूप से, आप इन पुस्तकालयों के साथ पहले से ही स्थापित एक वातावरण में तैनात होंगे।
स्टीफन केंडल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.