রুবিতে একটি স্ট্রিংয়ে একটি চরিত্রের # উপস্থিতি সন্ধান করা হচ্ছে


103

আমি রুবি পদ্ধতিটি (১.৯ ...) সন্ধান করছি যা আমাকে একটি স্ট্রিংয়ে অক্ষরের সংখ্যার সন্ধান করতে সহায়তা করতে পারে। আমি সমস্ত ঘটনা সন্ধান করছি, কেবল প্রথমটি নয়।

উদাহরণস্বরূপ: "মেলানিয়া একটি নুব" "ক" অক্ষরের দুটি ঘটনা আছে। এটি খুঁজে পেতে আমি কীভাবে ব্যবহার করতে পারি রুবি পদ্ধতি?

আমি রুবি-ডক.অর্গ.আর.কে একটি রেফারেন্স এবং scanপদ্ধতিটি String: classআমার চোখের কাছে ধরার পদ্ধতি হিসাবে ব্যবহার করছি । শব্দটি বোঝা আমার পক্ষে কিছুটা কঠিন, তাই আমি আসলেই এর ধারণাটি বুঝতে পারি না scan

সম্পাদনা করুন: আমি এটি ব্যবহার করে সমাধান করতে সক্ষম হয়েছি scanআমি কীভাবে এটি অর্জন করেছি একটি ভিডিওতে ভাগ করেছি।


2
আপনি কি সংখ্যার সংখ্যা চান, না স্ট্রিংয়ের সংঘটনগুলির সূচক মানগুলি চান? কতগুলি প্রায়শই দরকারী তা জানেন তবে সাধারণত পরবর্তী প্রশ্নটি হয় "তারা কোথায়?"
টিন ম্যান

উত্তর:


142

আপনি যদি কেবল একটি এর সংখ্যা চান:

puts "Melanie is a noob".count('a')  #=> 2

আরও বিশদ জন্য ডক্স


18
আমি এই উত্তরটি সত্যিই পছন্দ করেছি যতক্ষণ না আমি লক্ষ্য করেছি যে আপনি কেবল প্রশ্নটি থেকে স্ট্রিংটি নিয়েছেন :-) তবুও +1 করুন।
হুব্রো

কেন এটি বিন্দু দিয়ে কাজ করে না? উদাহরণ "voyage.localhost.com" .কাউন্ট ('www।') => ২. এটি কীভাবে হতে পারে?
গেডিমিনাস

12
@ গেডিমিনাস countস্ট্রিং নয়, চরিত্র গণনা করেছে "voyage.localhost.com" .count ( 'www।') হিসাবে "voyage.localhost.com" .count একই এবং যেহেতু সেখানে W এবং দুটি বিন্দু নেই ফলাফলের 2. হয় ( 'W।')
steenslag

2
কোনও সুযোগ আপনি ডক্সে একটি লিঙ্ক যুক্ত করতে পারেন ?
ফান্ড মনিকার লসুইট

2
এই উত্তরটি শুনে আমি প্রথমে বেশ হতবাক হয়ে গিয়েছিলাম, তারপরে আমি দেখলাম মেলানিয়া প্রথম উদাহরণটি ব্যবহার করেছিল। ভাল উত্তর!
এজেফারাডে

52

পূর্বে জিজ্ঞাসিত প্রশ্ন থেকে এই লিঙ্কটি রুবিতে একটি স্ট্রিং স্ক্যান করতে সহায়তা করবে

স্ক্যান স্ট্রিংয়ের সমস্ত উপস্থিতি একটি অ্যারে হিসাবে ফেরত দেয়

"Melanie is a noob".scan(/a/)

ফিরে আসবে

["a","a"]

1
এই উত্তরটি আমি :) খুঁজছেন ছিল হয়
Zippie

3
scanসাধারণ স্ট্রিংসের সাথেও কাজ করে, scan('a')পাশাপাশি
এটিও

1

scanঅন্য উত্তরে দেখানো মত স্ট্রিং পেরিয়ে আমি এটিকে সমাধান করতে সক্ষম হয়েছি ।

উদাহরণ স্বরূপ:

string = 'This is an example'
puts string.count('e')

আউটপুট:

2

আমি রেজেনেক্সের পরিবর্তে স্ক্যান ব্যবহার করে এবং একটি স্টিং পাস করে যা অন্য উত্তর থেকে সামান্য পরিবর্তিত হয় তবে রেজেক্স এড়ানোর জন্য সহায়ক ছিল তা দ্বারা ঘটনাগুলি টানতে সক্ষম হয়েছি।

string = 'This is an example'
puts string.scan('e')

আউটপুট:

['e','e']

আমি এই পদ্ধতিগুলি আরও সন্ধানের পরে আমার তৈরি একটি ছোট ভিডিও গাইডে আরও অন্বেষণ করেছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.