2013-02-13 52 views
30

0 के अंत तक इंडेक्स से सबस्ट्रिंग के लिए रूबी मुहावरे बस सोच रहा है कि स्ट्रिंग के अंत तक एक इंडेक्स से एक सबस्ट्रिंग निकालने के लिए रूबी मुहावरे है या नहीं। मुझे str[index..-1] पता है जो String की [] विधि पर एक श्रेणी ऑब्जेक्ट में गुजरकर काम करता है लेकिन यह थोड़ा सा गुंजाइश है। पाइथन में, उदाहरण के लिए, आप str[index:] लिख सकते हैं जो आपको निश्चित रूप से स्ट्रिंग के बाकी हिस्सों को प्राप्त करेगा।स्ट्रिंग

उदाहरण:

s = "hello world" 
s[6..-1] # <-- "world" 

क्या s[6..-1] से अच्छे है?

+0

मुझे लगता है कि स्पष्ट रूप से इस मामले में implicity से अच्छे है करने के लिए एक सूचकांक से स्ट्रिंग प्राप्त करना चाहते हैं। – Flauwekeul

+0

@ फ्लौवेकुल उस सम्मान में रेंज क्यों है? –

+0

क्लंक के साथ आपका क्या मतलब है? – Flauwekeul

उत्तर

9

मुझे लगता है कि यह नहीं है।

ऐसा लगता है कि Range ऐसा करने का बेहतर तरीका है।

+1

क्षमा करें, क्या आप स्पष्टीकरण दे सकते हैं? आपको लगता है कि '' रेंज''' (जिस तरह से मेरे पास सवाल है) यह करने का सबसे अच्छा तरीका है? –

+1

@ शेरविनयु, हाँ, यह है। –

5

यदि आप चाहें तो 'अच्छा' है। आप रूबी स्ट्रिंग क्लास का विस्तार कर सकते हैं और फिर इस विधि का उपयोग अपने कोड में कर सकते हैं।

class String 
    def last num 
    self[-num..-1] 
    end 
end 

और फिर: उदाहरण के लिए:

s = "hello world" 
p s.last(6) 
+3

ओपी ने अंतिम एक्स वर्णों को प्राप्त करने का अनुरोध नहीं किया था। उन्होंने पूछा कि एक्स से वर्णों को स्ट्रिंग –

2

आप String वर्ग का विस्तार कर सकते हैं। सुनिश्चित नहीं हैं कि अगर यह एक गहरे लाल रंग का मुहावरा हालांकि बताया गया है:

class String 
    def last(n) 
    self[(self.length - n)..-1] 
    end 
end 
+0

के अंत तक कैसे प्राप्त करें ओपी चाहता है कि आखिरी वर्ण 'n' से शुरू हो जाएं। अंतिम 'एन' वर्ण नहीं। –

3

आप पूर्ण स्ट्रिंग लंबाई

s = "hello world" 
s[ 5 .. s.length -1 ] 
+2

यह होना चाहिए [5..s. लम्बाई - 1] ' –