रूबी में निचले या ऊपरी मामले में एक स्ट्रिंग कैसे परिवर्तित करें


1109

मैं एक स्ट्रिंग कैसे ले सकता हूं और इसे रूबी में निचले या ऊपरी मामले में बदल सकता हूं?

जवाबों:


1588

रूबी में तार के मामले को बदलने के लिए कुछ तरीके हैं। लोअरकेस में बदलने के लिए, उपयोग करें downcase:

"hello James!".downcase    #=> "hello james!"

इसी तरह, upcaseहर अक्षर को कैपिटल करता है और capitalizeस्ट्रिंग के पहले अक्षर को कैपिटल करता है, लेकिन बाकी को नीचे कर देता है:

"hello James!".upcase      #=> "HELLO JAMES!"
"hello James!".capitalize  #=> "Hello james!"
"hello James!".titleize    #=> "Hello James!"

यदि आप किसी स्ट्रिंग को जगह में बदलना चाहते हैं, तो आप उन विधियों में से किसी में विस्मयादिबोधक बिंदु जोड़ सकते हैं:

string = "hello James!"
string.downcase!
string   #=> "hello james!"

का संदर्भ लें स्ट्रिंग के लिए दस्तावेज़ और जानकारी के लिए।


2
मैंने इसका उत्तर देने के बाद ही इसके बारे में सोचा था, लेकिन मैं आपको इसका उत्तर देने के लिए समय देने का श्रेय देता हूँ। धन्यवाद!
— हीट मिस्टर

3
ध्यान रहे! मुझे "बैंग का उपयोग करना पसंद है!" अगर कोई कैपिटल लेटर नहीं है तो शून्य वापस कर देंगे। so str = "यह" .downcase! रिटर्न str = nil
— Phil_Ken_Sebben

12
अक्सर, "धमाके के तरीके" वापसी nil; यदि आप किसी ऑब्जेक्ट को स्थान में बदलना चाहते हैं, तो आपको उनका उपयोग करना चाहिए, न कि यदि आप किसी अन्य चर में मान संग्रहीत करना चाहते हैं।
— सोफी अल्परट

6
.titleizeरेल से है। रूबी Stringप्रलेखन में इसे नहीं पा सकते हैं
— ronald8192

3
titleizeइस उत्तर से हटाने की आवश्यकता है या कम से कम यह एक नियम विधि है।
— सागर पंड्या

122

आप स्ट्रिंग खोलकर और चलाकर स्ट्रिंग पर उपलब्ध सभी तरीकों का पता लगा सकते हैं:

"MyString".methods.sort

और विशेष रूप से तार के लिए उपलब्ध विधियों की सूची के लिए:

"MyString".own_methods.sort

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


12
इस उत्तर के साथ एकमात्र समस्या यह है कि #own_methods मौजूद नहीं है। क्या यह इरब के विस्तार से है?
— मार्क वाइल्डन

12
हाय - मैंने सोचा कि मैं तब #own_methods के साथ कुछ नया सीख रहा था, लेकिन यह मेरे लिए मौजूद नहीं है। हालाँकि, मैं आमतौर पर जाता हूं: ("MyString" .methods - Object.merhods) .sort
— समुद्रशास्त्री

2
पैच @fakeleft के समान ही संदर्भित है, और मेरे पास इसकी .irbrc फ़ाइल है। मैं बंदर पैच वस्तु और इस के साथ #own_methds बनाने: (obj.methods - obj.class.superclass.instance_methods) .sort
— mlambie

1
@ लेजर विशेष रूप से स्ट्रिंग के लिए तरीके स्ट्रिंग कक्षा में ही परिभाषित हैं। एक स्ट्रिंग पर उपलब्ध तरीकों में इसके सुपरक्लास (एस) में परिभाषित लोग शामिल हैं।
— निधि मोनिका का मुकदमा

1
String.public_instance_methods(false)विशेष रूप से परिभाषित सभी सार्वजनिक उदाहरण विधियों को खोजने के लिए उपयोग करें String।
— 3limin4t0r

39

जैसे @endeR का उल्लेख है, अगर अंतर्राष्ट्रीयकरण एक चिंता है, तो यूनिकोड_यूटिल्स मणि पर्याप्त से अधिक है।

$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"

रूबी 2.4 में स्ट्रिंग जोड़तोड़ अब यूनिकोड-संवेदनशील हैं।


18

माणिक downcaseविधि अपने अपरकेस अक्षरों के साथ लोअरकेस अक्षरों द्वारा प्रतिस्थापित एक स्ट्रिंग लौटाती है।

"string".downcase

https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase


यहाँ रूबी रूपांतरण: Techotopia.com/index.php/Ruby_String_Conversions
— TStamper

2
जबकि तकनीकी रूप से यह सवाल का जवाब देने में मदद करता है, यह वास्तव में अधिक रोशन होना चाहिए। परिणाम शायद दिखाएं? शायद प्रलेखन के लिए एक कड़ी?
— टिन मैन


12

रेल सक्रिय समर्थन मणि प्रदान करता है upcase, downcase, swapcase, capitalize, आदि अंतर्राष्ट्रीयकरण समर्थन के साथ तरीके:

gem install activesupport
irb -ractive_support/core_ext/string
"STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
 => "string  áâãàçéêíóôõú"
"string  áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ"

1

आप की तरह तार विधि पा सकते हैं "strings".methods आप के रूप में स्ट्रिंग परिभाषित कर सकते हैं upcase, downcase, titleize। उदाहरण के लिए,

"hii".downcase
"hii".titleize
"hii".upcase

1

.Swapcase विधि रूपांतरण एक स्ट्रिंग में अपरकेस latters लोअरकेस और छोटे अक्षरों को अपरकेस में।

'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING

1
धन्यवाद! यही वह है जिसकी तलाश में मैं हूं। एक मिश्रित केस स्ट्रिंग इसे और अधिक स्पष्ट कर सकती है कि यह विधि क्या करती है ...'Testing'.swapcase #=> tESTING
— मैथ्यू


0

हर काम नहीं करेगा, लेकिन इसने मुझे समय का एक समूह बचा लिया। मुझे सिर्फ CSV के साथ "TRUE या" FALSE "की समस्या थी, इसलिए मैंने अभी VALUE.to_s.downcase ==" सत्य "को जोड़ा, जो बूलियन सही लौटाएगा यदि मान" TRUE "है और यदि मान" FALSE "गलत है। ", लेकिन अभी भी बूलियन के लिए सही और गलत काम करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.