2011-11-30 20 views
5

इस तरह की शुरुआत का सवाल है, लेकिन कोड मैं देख रहा हूँ उत्पादन में है और मैं कुछ भी तोड़ने के लिए नहीं करना चाहती। तो, सिर्फ मामले में:सबस्ट्रिंग लंबाई

text.Substring(index, length).Length 

सिर्फ length के बराबर है ना?

(संभावित ArgumentOutOfRangeException को छोड़कर।)

+1

अपवाद के मूल्य छूट नहीं है। –

+0

ये कोशिश नहीं कर रहे हैं। मुझे लगता है कि सीमा से बाहर एक धारणा कभी नहीं होगी। – Nickolodeon

+0

इसे एक कोशिश ब्लॉक में डालकर मूल्य को नष्ट कर देगा। धारणा यह नहीं है कि यह कभी नहीं होता है, यह है कि अगर ऐसा होता है तो इससे परेशानी नहीं हो सकती है। ।] –

उत्तर

6

हाँ, यह बिल्कुल वैसा ही हो जाएगा।

+0

मैं हमेशा बहुत धीमी गति से कर रहा हूँ :(का कारण नहीं बनेगा –

+0

मेरी उँगलियाँ बिजली की तरह आज जगह कर सकते हैं पार्टी :-) – Polynomial

+0

मैं सिर्फ अपनी टिप्पणी हर जगह विशेषाधिकार बस समय में देर करने के लिए हो गया: – dash

1

मुझे ऐसा लगता है। मुझे ऐसा लिखने का कोई कारण नहीं दिख रहा है।

+0

मेरे लिए एकमात्र स्पष्टीकरण मैंने पाया है कि लेखक (हालांकि एक प्रयोगात्मक) सी ++ पृष्ठभूमि से आया था। उन्हें शायद मल्टीबाइट एन्कोडिंग के साथ समस्याएं थीं और इसलिए मैन्युअल गणना से बचा था। – Nickolodeon

+0

@ निकोलोडियन - यहां तक ​​कि उस मामले में यह कोई समझ नहीं आता है। 'सबस्ट्रिंग' और 'लम्बाई' कई * अक्षरों * पर काम करता है, न कि * बाइट्स * की संख्या। मल्टीबाइट का कोई प्रभाव नहीं होगा, और मैं ऐसी स्थिति नहीं देख सकता जहां यह सी ++ में इसी तरह के मामले में होगा। – Polynomial

+0

मैं बस अस्पष्टता याद करता हूं कि सी ++ में स्ट्रिंग वास्तव में एक char [] है। बदले में चार (कम से कम, एक बाइट होता था)। – Nickolodeon

0

चलो देखते हैं क्या है कि वास्तव में कुछ संख्या के साथ मतलब है:

"मेरे ग्रूवी परीक्षण स्ट्रिंग" .Substring (0, 2) .Length == "मेरे" .Length = 2

"मेरे ग्रूवी परीक्षण स्ट्रिंग ro "= 2

" .Substring (4, 2) .Length == "के रूप में आप कहते हैं, अगर STARTINDEX + लंबाई> स्ट्रिंग की लंबाई, या STARTINDEX नहीं स्ट्रिंग तो एक ArgumentOutOfRangeException

फेंक दिया जाता है में है

तो हाँ, संभावित अन्य मामलों के सभी के रूप में एक अपवाद फेंक देते हैं।

मेरे संदेह लेखक नहीं पता था कि किनारे मामले (जब STARTINDEX + लंबाई> स्ट्रिंग के अंत) एक अपवाद फेंकता है।

+0

हमारे मामले में सूचकांक हमेशा> = 0 है और मैंने शुरुआत में एक चेक जोड़ा है कि स्ट्रिंग खाली नहीं है। – Nickolodeon

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