perl पर्ल में दिए गए इंडेक्स में मैं कैरेक्टर कैसे प्राप्त कर सकता हूं?




string (3)

लंबाई 1 के साथ substr उपयोग करें:

$nth = substr($string, n-1, 1);

अन्य समाधानों के लिए भी perlmonks लुकअप।

अगर मेरे पास पर्ल स्ट्रिंग है:

$str = "Hello";

charAt (अनुक्रमणिका) के समान किसी दिए गए इंडेक्स में मैं कैरेक्टर कैसे प्राप्त कर सकता हूं?


$char = substr( $mainstring, $i , 1 );

ऐसा करने का एक तरीका है, शायद सबसे स्पष्ट।

यदि आप जो चाहते थे वह संख्यात्मक मूल्य था और आप यह बहुत कुछ करने का इरादा रखते थे:

unpack("W*","hello")

चार मानों की एक सरणी देता है:

print join ",", unpack("W*","hello")  ; 
#  104,101,108,108,111

उचित यूनिकोड / यूटीएफ 8 सामान के लिए आप उपयोग करना चाहेंगे

use utf8;
unpack("U*","hello\0ƀ\n") 
# 104,101,108,108,111,0,384,10

अन्य सबस्ट्रेट () उत्तरों के लिए अनुवांशिक यह है कि आप इसे इंडेक्स पर मान सेट करने के लिए भी उपयोग कर सकते हैं। यह इसे लालू या अतिरिक्त तर्क के साथ समर्थन करता है। यह splice के समान भी है, जो एक ही बात है, लेकिन सरणी के लिए।

$string = "hello";
substr($string, 2, 2) = "this works?";
substr($string, 2, 2, "same thing basically");
@a = qw(s t r i n g s a n d t h i n g s);
@cut_out = splice(@a, 2, 2);
@cut_out = splice(@a, 2, 2, @replacement);




string