কম্পিউটার

রুবি স্ট্রিং পদ্ধতি (চূড়ান্ত গাইড)

একটি স্ট্রিং অক্ষরের একটি ক্রম।

স্ট্রিংগুলি হল বস্তু তাই তাদের অনেক পদ্ধতি রয়েছে যা আপনি তাদের সাথে কাজ করতে ব্যবহার করতে পারেন৷

এই নিবন্ধে আপনি সবচেয়ে দরকারী রুবি স্ট্রিং পদ্ধতি আবিষ্কার করবেন উদাহরণ সহ!

বিষয়বস্তু

  • 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

উপরন্তু, Ruby 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"]

কিন্তু আপনি যদি বিশেষভাবে CSV ডেটা নিয়ে কাজ করেন তবে আপনি স্ট্যান্ডার্ড লাইব্রেরি থেকে CSV ক্লাস ব্যবহার করার কথা বিবেচনা করতে পারেন। এই ক্লাসটি কলাম হেডার পড়ার মতো কাজ করতে পারে, তাই এটি আপনার জন্য জিনিসগুলিকে সহজ করে তোলে৷

একটি অ্যারেকে একটি স্ট্রিংয়ে রূপান্তর করুন

আপনি যদি স্ট্রিংগুলির একটি অ্যারে নিতে চান এবং এই স্ট্রিংগুলিকে একটি বড় স্ট্রিংয়ে যুক্ত করতে চান তবে আপনি 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 সমস্ত মিল প্রতিস্থাপন করে৷

কীভাবে একটি স্ট্রিং থেকে শেষ অক্ষরটি সরাতে হয়

আপনি যদি ব্যবহারকারীকে কিছু ইনপুট (Kernel#gets পদ্ধতি ব্যবহার করে) জিজ্ঞাসা করেন তবে আপনার কাছে একটি নতুন লাইন অক্ষর থাকবে (\n ) আপনার স্ট্রিংয়ের শেষে, এটি আপনাকে সরাসরি স্ট্রিং তুলনা করতে বাধা দেয়।

উদাহরণ :

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

# type something...

সেই অতিরিক্ত নতুন লাইন অক্ষরটি সরানোর সর্বোত্তম উপায় (\n ) হল চম্প পদ্ধতি ব্যবহার করা .

উদাহরণ :

name = gets.chomp

যেহেতু রুবি 2.3 chomp পদ্ধতিটি একটি ঐচ্ছিক যুক্তি নেয় যা আপনাকে আপনি যে অক্ষরগুলি সরাতে চান তা সরাতে দেয়৷

উদাহরণ :

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

এবং যদি অক্ষরটি সেখানে না থাকে তবে এটি আসল স্ট্রিংটি ফিরিয়ে দেবে।

স্ট্রিং এনকোডিং কিভাবে পরিবর্তন করবেন

স্ট্রিংগুলিকে বাইটের ক্রম হিসাবে সংরক্ষণ করা হয়, সেগুলি অক্ষরে পরিণত হয় যা আপনি তাদের এনকোডিংয়ের উপর ভিত্তি করে দেখতে পারেন৷

উদাহরণস্বরূপ, ASCII এনকোডিং-এর 65 নম্বরটি "A" অক্ষরটিকে উপস্থাপন করে৷

তবে আরও জটিল এনকোডিং রয়েছে, যেমন 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. কীবোর্ডের চূড়ান্ত নির্দেশিকা

  2. রুবিতে কার্যকরী প্রোগ্রামিং (সম্পূর্ণ নির্দেশিকা)

  3. রুবি স্ট্রিং বিন্যাস

  4. রুবিতে সিনট্যাকটিক চিনির পদ্ধতি