Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

रूबी स्ट्रिंग तरीके (अंतिम गाइड)

एक स्ट्रिंग वर्णों का एक क्रम है।

स्ट्रिंग्स ऑब्जेक्ट हैं इसलिए उनके पास बहुत सी विधियां हैं जिनका उपयोग आप उनके साथ काम करने के लिए कर सकते हैं।

इस लेख में आप सबसे उपयोगी रूबी स्ट्रिंग विधियों . के बारे में जानेंगे उदाहरणों के साथ!

सामग्री

  • 1 स्ट्रिंग की लंबाई कैसे प्राप्त करें
  • 2 कैसे जांचें कि कोई स्ट्रिंग खाली है या नहीं
  • 3 स्ट्रिंग इंटरपोलेशन क्या है?
  • 4 सबस्ट्रिंग कैसे निकालें
  • 5 कैसे पता करें कि किसी स्ट्रिंग में दूसरी स्ट्रिंग है या नहीं
  • 6 रूबी स्ट्रिंग को कैसे पैड करें
  • 7 स्ट्रिंग्स इग्नोरिंग केस की तुलना करें
  • 8 किसी स्ट्रिंग को कैसे ट्रिम करें और व्हाइट स्पेस कैसे निकालें
  • 9 स्ट्रिंग उपसर्ग और प्रत्यय
  • 10 एक स्ट्रिंग को वर्णों की एक सरणी में कनवर्ट करें
  • 11 किसी सरणी को स्ट्रिंग में कनवर्ट करें
  • 12 एक स्ट्रिंग को एक पूर्णांक में बदलें
  • 13 जांचें कि क्या एक स्ट्रिंग एक संख्या है
  • 14 वर्णों को कैसे जोड़ें
  • 15 रूबी में एक स्ट्रिंग के वर्णों पर पुनरावृति करें
  • 16 रूबी में स्ट्रिंग को अपर या लोअरकेस में कैसे बदलें
  • 17 मल्टीलाइन स्ट्रिंग्स कैसे बनाएं
  • 18 Gsub विधि का उपयोग करके स्ट्रिंग के अंदर टेक्स्ट को कैसे बदलें
  • 19 किसी स्ट्रिंग से अंतिम वर्ण कैसे निकालें
  • 20 स्ट्रिंग एन्कोडिंग कैसे बदलें
  • 21 वर्ण गिनना
  • 22 सारांश
    • 22.1 संबंधित

स्ट्रिंग की लंबाई कैसे प्राप्त करें

आसान:

"ruby".size
# 4

आप length . का भी उपयोग कर सकते हैं , के बजाय size , वे वही काम करते हैं।

कैसे जांचें कि कोई स्ट्रिंग खाली है या नहीं

हम एक खाली स्ट्रिंग को शून्य लंबाई वाली स्ट्रिंग के रूप में परिभाषित करते हैं।

आप इस तरह जांच सकते हैं :

"".size == 0
# true

या इससे भी बेहतर, empty? . का उपयोग करें विधि।

उदाहरण :

"".empty?
# true

एक रिक्त स्ट्रिंग एक स्ट्रिंग है जिसमें या तो शून्य-लंबाई होती है, या केवल सफेद स्थान वर्णों से बनी होती है।

स्ट्रिंग इंटरपोलेशन क्या है?

स्ट्रिंग इंटरपोलेशन आपको स्ट्रिंग्स को एक साथ संयोजित करने की अनुमति देता है:

name = "Jesus"

puts "Hello #{name}"

जो कुछ लोग नहीं जानते हैं वह यह है कि आपके पास इंटरपोलेशन के अंदर वास्तविक कोड हो सकता है।

यहां एक उदाहरण दिया गया है:

puts "The total is #{1+1}"

# "the total is 2"

रूबी to_s को कॉल करती है स्ट्रिंग इंटरपोलेशन ब्लॉक पर विधि, यह ऑब्जेक्ट को खुद को एक स्ट्रिंग में बदलने के लिए कहती है।

सबस्ट्रिंग कैसे निकालें

एक सबस्ट्रिंग एक स्ट्रिंग का एक छोटा हिस्सा है, यह उपयोगी है यदि आप केवल उस विशिष्ट भाग को चाहते हैं, जैसे शुरुआत, मध्य या अंत।

रूबी में आप सबस्ट्रिंग कैसे प्राप्त करते हैं?

एक तरीका यह है कि एक प्रारंभिक अनुक्रमणिका और कई वर्णों का उपयोग, वर्गाकार कोष्ठकों के अंदर, अल्पविराम द्वारा अलग किया जाए।

इसे पसंद करें :

string = "abc123"

string[0,3]
# "abc"

string[3,3]
# "123"

पहला नंबर शुरुआती इंडेक्स है।

दूसरी संख्या यह है कि आपको कितने वर्ण चाहिए।

यदि आप कुछ करना चाहते हैं तो आप एक श्रेणी का उपयोग भी कर सकते हैं जैसे "सभी वर्ण प्राप्त करें लेकिन अंतिम एक"।

उदाहरण :

string = "abc123"

string[0..-2]
# "abc12"

अब, पहला इंडेक्स अभी भी शुरुआती इंडेक्स है, लेकिन दूसरा इंडेक्स एंडिंग इंडेक्स (समावेशी) है। यह -2 दूसरे से अंतिम वर्ण है, और -1 स्ट्रिंग का अंत है।

अगर आप हटाना चाहते हैं या सबस्ट्रिंग को बदलना

आप यह कर सकते हैं:

string[0..2] = ""

p string
# "123"

बहुत बढ़िया!

कैसे पता करें कि किसी स्ट्रिंग में दूसरी स्ट्रिंग है या नहीं

यह पता लगाने का सबसे आसान तरीका क्या है कि कोई स्ट्रिंग किसी अन्य स्ट्रिंग में शामिल है या नहीं?

include? विधि:

string = "Today is Saturday"

string.include?("Saturday")
# true

आप index . का भी उपयोग कर सकते हैं विधि:

string = "Today is Sunday"

string.index("day")
# 2

यह विधि आंशिक शब्दों की तलाश करती है और सही या गलत लौटने के बजाय यह आपको वह सूचकांक देगी जहां इस स्ट्रिंग की शुरुआत पाई जाती है।

इस उदाहरण में, index "आज" में "दिन" ढूंढ रहा है।

यदि आप पैटर्न ढूंढना चाहते हैं (जैसे "दिन" शब्द वाले सभी शब्द) तो आप रेगुलर एक्सप्रेशन ढूंढ रहे हैं।

रूबी स्ट्रिंग को कैसे पैड करें

स्ट्रिंग को पैड करने का एक तरीका rjust . का उपयोग करना है दो तर्कों के साथ विधि:

binary_string = "1101"
binary_string.rjust(8, "0")

# "00001101"

यदि आप दाईं ओर पैड करना चाहते हैं तो आप ljust . का उपयोग कर सकते हैं :

binary_string = "1111"
binary_string.ljust(8, "0")

# "11110000"

स्ट्रिंग्स इग्नोरिंग केस की तुलना करें

चूंकि स्ट्रिंग तुलना केस-संवेदी है, इसलिए आप यह सुनिश्चित करना चाहते हैं कि जिन दो स्ट्रिंग्स की आप तुलना कर रहे हैं, वे एक ही स्थिति में हैं।

ऐसा करने का सामान्य तरीका समीकरण के दोनों पक्षों को downcase बनाना है या upcase

उदाहरण :

lang1 = "ruby"
lang2 = "Ruby"

lang1.upcase == lang2.upcase

एक casecmp? विधि जो केस-असंवेदनशील तुलना करती है, लेकिन इसका उपयोग शायद ही कभी किया जाता है।

ऊपर दिए गए उदाहरण पर कायम रहें।

स्ट्रिंग को कैसे ट्रिम करें और व्हाइट स्पेस कैसे निकालें

किसी फ़ाइल या वेबसाइट से डेटा पढ़ते समय आप अपने आप को अपनी स्ट्रिंग में अतिरिक्त सफेद स्थान के साथ पा सकते हैं।

आप उस अतिरिक्त स्थान को strip . से हटा सकते हैं विधि:

extra_space = "   test    "
extra_space.strip

# "test"

यदि आप केवल एक तरफ (बाएं / दाएं) से सफेद स्थान हटाना चाहते हैं तो आप lstrip का उपयोग कर सकते हैं &rstrip इसके बजाय तरीके।

स्ट्रिंग उपसर्ग और प्रत्यय

आप start_with? . का उपयोग कर सकते हैं यह जांचने की विधि कि क्या कोई स्ट्रिंग किसी विशिष्ट उपसर्ग से शुरू होती है।

यहां एक उदाहरण दिया गया है :

string = "ruby programming"

string.start_with? "ruby"
# true

एक end_with? भी है विधि:

string = "ruby programming"

string.end_with? "programming"
# true

इसके अलावा, रूबी 2.5 ने delete_prefix . पेश किया &delete_suffix तरीके, जो आपके लिए उपयोगी हो सकते हैं।

यहां एक उदाहरण दिया गया है :

string = "bacon is expensive"

string.delete_suffix(" is expensive")

# "bacon"

एक स्ट्रिंग को वर्णों की एक सरणी में बदलें

एक स्ट्रिंग लेना और उसे वर्णों की एक सरणी में तोड़ना split . के साथ आसान है विधि।

उदाहरण :

string = "a b c d"

string.split
# ["a", "b", "c", "d"]

डिफ़ॉल्ट रूप से split विभाजक वर्ण के रूप में एक स्थान का उपयोग करेगा, लेकिन आप एक अलग विभाजक निर्दिष्ट करने के लिए इस पद्धति में एक तर्क पारित कर सकते हैं।

यहां बताया गया है कि आप अल्पविराम से अलग किए गए मानों (CSV) की सूची को कैसे विभाजित कर सकते हैं:

csv = "a,b,c,d"

string.split(",")
# ["a", "b", "c", "d"]

लेकिन अगर आप विशेष रूप से सीएसवी डेटा के साथ काम कर रहे हैं तो आप मानक पुस्तकालय से सीएसवी कक्षा का उपयोग करने पर विचार करना चाहेंगे। यह वर्ग कॉलम हेडर पढ़ने जैसे काम कर सकता है, इसलिए यह आपके लिए चीजों को आसान बनाता है।

ऐरे को स्ट्रिंग में बदलें

यदि आप स्ट्रिंग्स की एक सरणी लेना चाहते हैं और इन स्ट्रिंग्स को एक बड़ी स्ट्रिंग में जोड़ना चाहते हैं तो आप join का उपयोग कर सकते हैं विधि।

उदाहरण :

arr = ['a', 'b', 'c']

arr.join
# "abc"

join . के लिए तर्क देना भी संभव है , यह तर्क वर्ण विभाजक है।

उदाहरण :

arr = ['a', 'b', 'c']

arr.join("-")
# "a-b-c"

एक स्ट्रिंग को एक पूर्णांक में बदलें

यदि आप "49" . जैसी स्ट्रिंग को कनवर्ट करना चाहते हैं पूर्णांक में 49 आप to_i . का उपयोग कर सकते हैं विधि।

उदाहरण :

"49".to_i

ध्यान दें कि यदि आप इसे एक स्ट्रिंग के साथ आज़माते हैं जिसमें कोई संख्या नहीं है तो आपको 0 . मिलेगा ।

उदाहरण :

"a".to_i
# 0

जांचें कि क्या कोई स्ट्रिंग एक संख्या है

क्या आप जानना चाहेंगे कि क्या कोई स्ट्रिंग केवल पूर्ण संख्याओं से बनी है?

आप यह कर सकते हैं :

"123".match?(/\A-?\d+\Z/)
# true

"123bb".match?(/\A-?\d+\Z/)
# false
<ब्लॉकक्वॉट>

नोट :match? रूबी 2.4 में विधि पेश की गई थी, आप match . का उपयोग कर सकते हैं (प्रश्न चिह्न के बिना) पुराने संस्करणों पर।

यह कोड एक रेगुलर एक्सप्रेशन का उपयोग करता है, मुझे इसे आपके लिए अनुवाद करने दें:

"स्ट्रिंग की शुरुआत से (\A ) जांचें कि क्या कोई वैकल्पिक डैश है (-? , ऋणात्मक संख्याओं के लिए), फिर सुनिश्चित करें कि वहाँ कुछ संख्याएँ हैं (\d+ ) और स्ट्रिंग के अंत तक और कुछ नहीं (\Z )।"

अक्षर कैसे जोड़ें

आप मौजूदा स्ट्रिंग में वर्णों को जोड़कर छोटी स्ट्रिंग से एक बड़ी स्ट्रिंग बना सकते हैं। हम इसे स्ट्रिंग संयोजन . भी कहते हैं ।

यहां बताया गया है कि << . का उपयोग करके ऐसा कैसे करें विधि:

string = ""

string << "hello"
string << " "
string << "there"

# "hello there"

+= का इस्तेमाल न करें स्ट्रिंग संयोजन के लिए क्योंकि यह हर बार एक नई स्ट्रिंग बनाएगा, जो प्रदर्शन के लिए अच्छा नहीं है!

रूबी में एक स्ट्रिंग के वर्णों पर पुनरावृति करें

कभी-कभी स्ट्रिंग के अलग-अलग वर्णों के साथ काम करना उपयोगी होता है।

ऐसा करने का एक तरीका each_char . का उपयोग करना है विधि:

"rubyguides".each_char { |ch| puts ch }

आप chars . का भी उपयोग कर सकते हैं स्ट्रिंग को वर्णों की एक सरणी में बदलने की विधि। फिर आप each . का उपयोग कर सकते हैं इस सरणी पर पुनरावृति करने के लिए।

उदाहरण :

array_of_characters = "rubyguides".chars
# ["r", "u", "b", "y", "g", "u", "i", "d", "e", "s"]

रूबी में स्ट्रिंग को अपर या लोअरकेस में कैसे बदलें

यदि आप किसी स्ट्रिंग को सभी अपर केस में कनवर्ट करना चाहते हैं तो आप upcase . का उपयोग कर सकते हैं विधि।

उदाहरण :

"abcd".upcase
# "ABCD"

और अगर आप लोअर केस में कनवर्ट करना चाहते हैं तो आप downcase . का उपयोग कर सकते हैं विधि।

उदाहरण :

"ABCD".downcase
# "abcd"

मल्टीलाइन स्ट्रिंग्स कैसे बनाएं

आप दो अलग-अलग तरीकों से मल्टी-लाइन स्ट्रिंग्स बना सकते हैं।

एक हेरेडोक्स का उपयोग कर रहा है:

b = <<-STRING
aaa
bbb
ccc
STRING

और दूसरा %Q . का उपयोग कर रहा है :

a = %Q(aaa
bbb
ccc
)

Gsub विधि का उपयोग करके स्ट्रिंग के अंदर टेक्स्ट को कैसे बदलें

यदि आप स्ट्रिंग के अंदर टेक्स्ट को बदलना चाहते हैं तो gsub विधि का उपयोग करें।

आइए "कुत्तों" शब्द को "बिल्लियों" से बदलें:

string = "We have many dogs"

string.gsub("dogs", "cats")

# "We have many cats"

यदि आप स्ट्रिंग को हटाना चाहते हैं तो रिक्त स्ट्रिंग का उपयोग करें दूसरे तर्क के रूप में।

उदाहरण :

string = "abccc"

string.gsub("c", "")

# "ab"

अब :

gsub विधि एक नई स्ट्रिंग लौटाती है।

यदि आप मूल स्ट्रिंग में परिवर्तन लागू करना चाहते हैं तो आप gsub! . का उपयोग कर सकते हैं विधि।

gsub विधि रेगुलर एक्सप्रेशन को तर्क के रूप में भी लेता है ताकि आप सटीक शब्दों के बजाय पैटर्न को बदल सकें।

यहां एक उदाहरण दिया गया है :

string = "We have 3 cats"

string.gsub(/\d+/, "5")

# "We have 5 cats"

यह सभी नंबरों को बदल देता है (\d+ ) स्ट्रिंग में संख्या 5 . के साथ ।

इस पद्धति का उपयोग करने का एक और तरीका, एक ब्लॉक के साथ:

title = "the lord of the rings"

title.gsub(/\w+/) { |word| word.capitalize }
# "The Lord Of The Rings"

gsub के बारे में क्या? बनाम sub ?

खैर, sub gsub . जैसा ही है , लेकिन यह केवल पहले मैच की जगह लेगा।

Gsub सभी मैचों की जगह लेता है।

एक स्ट्रिंग से अंतिम वर्ण कैसे निकालें

यदि आप उपयोगकर्ता से कुछ इनपुट मांग रहे हैं (कर्नेल#गेट्स विधि का उपयोग करके) तो आपके पास एक न्यूलाइन कैरेक्टर होगा (\n ) आपकी स्ट्रिंग के अंत में, यह आपको सीधे स्ट्रिंग की तुलना करने से रोकता है।

उदाहरण :

puts "What's your name?"
name = gets

# type something...

उस अतिरिक्त न्यूलाइन वर्ण को निकालने का सबसे अच्छा तरीका (\n ) चॉम्प विधि का उपयोग करना है

उदाहरण :

name = gets.chomp

चूंकि रूबी 2.3 चॉम्प विधि एक वैकल्पिक तर्क लेती है जो आपको उन पात्रों को हटाने की अनुमति देती है जिन्हें आप हटाना चाहते हैं।

उदाहरण :

"abcd?".chomp("?")
# "abcd"

और अगर चरित्र नहीं है तो वह मूल स्ट्रिंग लौटा देगा।

स्ट्रिंग एन्कोडिंग कैसे बदलें

स्ट्रिंग्स को बाइट्स के अनुक्रम के रूप में संग्रहीत किया जाता है, वे उन वर्णों में बदल जाते हैं जिन्हें आप उनके एन्कोडिंग के आधार पर देख सकते हैं।

उदाहरण के लिए, एएससीआईआई एन्कोडिंग में संख्या 65 "ए" अक्षर का प्रतिनिधित्व करती है।

लेकिन अधिक जटिल एनकोडिंग भी हैं, जैसे UTF-8, जो आपको विभिन्न भाषाओं (चीनी, आदि) और यहां तक ​​कि इमोजी के वर्णों का प्रतिनिधित्व करने की अनुमति देता है।

एक स्ट्रिंग के लिए वर्तमान एन्कोडिंग का पता लगाने के लिए आप encoding . का उपयोग कर सकते हैं विधि।

"abc".encoding

# Encoding:UTF-8

डिस्क से फ़ाइल पढ़ते समय या वेबसाइट से कुछ डेटा डाउनलोड करते समय आपको एन्कोडिंग समस्याओं का सामना करना पड़ सकता है।

आप अक्सर encoding . लागू करके उस समस्या को ठीक कर सकते हैं ।

इसे पसंद करें :

"abc".force_encoding("UTF-8")

वर्णों को गिनना

count . का उपयोग करके आप गिन सकते हैं कि कोई वर्ण स्ट्रिंग में कितनी बार दिखाई देता है विधि।

उदाहरण:

str = "aaab"

str.count("a")
# 3

str.count("b")
# 1

सारांश

आपने कई स्ट्रिंग विधियों . के बारे में सीखा , स्ट्रिंग्स को सरणियों में विभाजित करने के लिए शामिल हों और विभाजित करें, अतिरिक्त सफेद स्थान को ट्रिम करने के लिए स्ट्रिंग्स और स्ट्रिप के अंदर टेक्स्ट को प्रतिस्थापित करने के लिए gsub।

चूंकि आप बाद में इस पृष्ठ को संदर्भित करना चाहते हैं, इसे बुकमार्क करना सुनिश्चित करें और इसे अपने सभी रूबी दोस्तों के साथ साझा करें 🙂

पढ़ने के लिए धन्यवाद!


  1. कीबोर्ड के लिए अंतिम गाइड

    कीबोर्ड सबसे अधिक उपयोग किए जाने वाले कंप्यूटर बाह्य उपकरणों में से एक है। यदि आप एक कीबोर्ड खरीदने के बारे में सोच रहे हैं, तो किसी एक को सेट करने से पहले देखने के लिए कुछ महत्वपूर्ण विशेषताएं हैं, खासकर यदि वे इसे कई उपकरणों के बीच स्थानांतरित करना चाहते हैं। 2022 के 9 सर्वश्रेष्ठ कीबोर्ड एक कीबो

  1. रूबी में कार्यात्मक प्रोग्रामिंग (पूर्ण गाइड)

    हो सकता है कि आपने अभी कार्यात्मक प्रोग्रामिंग के बारे में सुना हो और आपके कुछ प्रश्न हों। लाइक... कार्यात्मक प्रोग्रामिंग वास्तव में क्या है? यह ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग से कैसे तुलना करता है? क्या आपको रूबी में कार्यात्मक प्रोग्रामिंग का उपयोग करना चाहिए? आइए मैं आपके लिए इन सवालों के जव

  1. रूबी स्ट्रिंग स्वरूपण

    आइए बात करते हैं कि आप रूबी में स्ट्रिंग्स को कैसे प्रारूपित कर सकते हैं। आप एक स्ट्रिंग को प्रारूपित क्यों करना चाहेंगे? ठीक है, हो सकता है कि आप ऐसे काम करना चाहें जैसे संख्या 10 से कम हो (उदाहरण:01, 02, 03…), या कुछ कंसोल आउटपुट कॉलम में अच्छी तरह से स्वरूपित हो। अन्य भाषाओं में आप printf . का