রুবি একটি স্ট্রিতে একটি অ্যারের সংমিশ্রণ করে


163

রুবিতে কী সব অ্যারে উপাদানকে এক স্ট্রিংয়ে একত্রিত করার উপায় আছে?

উদাহরণ অ্যারে:

@arr = ['<p>Hello World</p>', '<p>This is a test</p>']

উদাহরণ আউটপুট:

<p>Hello World</p><p>This is a test</p>

6
ডকুমেন্টেশন আপনার বন্ধু! এটি আপনাকে অ্যারে, স্ট্রিং, হ্যাশ ইত্যাদির পদ্ধতি অধ্যয়ন করতে যথেষ্ট সহায়তা করবে
মার্ক থমাস ২

উত্তর:


303

Array#joinপদ্ধতিটি ব্যবহার করুন ( joinস্ট্রিংগুলির মধ্যে কীটি যুক্ত করতে হবে তার যুক্তিটি - এই ক্ষেত্রে একটি স্থান):

@arr.join(" ")

1
আপনি যদি অঙ্কগুলিতে যোগ দিচ্ছিলেন তবে কী হবে? [1,2,3] => 123?
স্টিভেনস্পিল

3
@ মিঃ মিউজিকম্যান পূর্ণসংখ্যাসহ joinযে কোনও প্রতিক্রিয়ার প্রতিক্রিয়ার সাথে কাজ করে to_sতবে ফলাফল সর্বদা একটি স্ট্রিং হয়ে থাকবে। আপনি যদি একটি পূর্ণসংখ্যার ফলাফল চান, আপনি ফলাফলটি ব্যবহার করতে পারেন to_i
sepp2k

1
আপনি যদি প্রাথমিকভাবে একটি মাল্টি-লাইন স্ট্রিংটি ভেঙে ফেলে থাকেন তবে আপনি String#linesস্নেহের সাথে এটিকে আবার এক সাথে বেঁধে রাখতে পারেন my_string.join('')(খালি স্ট্রিং আর্গুমেন্টটি নোট করুন)।
ফ্র্যাঙ্ক কোহল

@ Sepp2k যা বলেছে তা জুড়তে: প্রথমে এবং দ্বিতীয় joinচেষ্টা করে । #to_str#to_s
গ্রেগ নাভিস

19

এর চেয়ে খানিকটা ক্রিপ্টিক হওয়ার সময় joinআপনি স্ট্রিং দ্বারা অ্যারেও গুণ করতে পারেন।

@arr * " "

1
ক্রিপ্টিক হওয়ার পাশাপাশি, এই কৌশলটি ব্যবহার করার সময় কি কোনও সম্ভাব্য ত্রুটি রয়েছে?
মার্কিও

4
@marcioAlmada কোন ত্রুটি নেই, কেবলমাত্র ন্যূনতম ওভারহেড। অ্যারে.c তে প্রথম কাজ রুবি একটি স্ট্রিং প্রকারের জন্য যাচাই করে এবং তারপরে যোগদানের পদ্ধতিটি কল করে। এছাড়াও: শো-উত্স শিলা সঙ্গে pry! নিজের জন্য চেষ্টা করুন: $ Array.instance_methods.*(show শো-উত্সের জন্য শর্টহ্যান্ড)
ওকেকেট

1

এখানে আমার সমাধান:

@arr = ['<p>Hello World</p>', '<p>This is a test</p>']
@arr.reduce(:+)
=> <p>Hello World</p><p>This is a test</p>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.