আমি কীভাবে সুইফটে স্ট্রিংগুলি সংযুক্ত করতে পারি?


188

কীভাবে সুইফটে স্ট্রিং সংযুক্ত করতে হয়?

ইন Objective-Cআমরা পছন্দ করি

NSString *string = @"Swift";
NSString *resultStr = [string stringByAppendingString:@" is a new Programming Language"];

অথবা

NSString *resultStr=[NSString stringWithFormat:@"%@ is a new Programming Language",string];

তবে আমি এটি সুইফট-ল্যাঙ্গুয়েজে করতে চাই।


1
সুইফ্ট সংকলক খুব ভাল + কম্পাইল করতে পারে না। আপনার যদি বাক্যে কয়েক + থাকে তবে এটি ব্যর্থ হতে পারে। () ব্যবহার করুন
কেলালাকা

উত্তর:


335

আপনি স্ট্রিংকে বিভিন্ন উপায়ে সংযুক্ত করতে পারেন:

let a = "Hello"
let b = "World"

let first = a + ", " + b
let second = "\(a), \(b)"

আপনি এছাড়াও করতে পারেন:

var c = "Hello"
c += ", World"

আমি নিশ্চিত আরও অনেক উপায় আছে।

বিবরণ বিট

letএকটি ধ্রুবক তৈরি করে। (মত একটি সাজানোর NSString)। একবার সেট হয়ে গেলে আপনি এর মান পরিবর্তন করতে পারবেন না। আপনি এখনও এটিকে অন্য জিনিসগুলিতে যুক্ত করতে পারেন এবং যদিও নতুন ভেরিয়েবল তৈরি করতে পারেন।

varএকটি পরিবর্তনশীল তৈরি করে। (পছন্দ মতো NSMutableString) যাতে আপনি এটির মান পরিবর্তন করতে পারেন। তবে স্ট্যাক ওভারফ্লোতে এর বেশ কয়েকবার উত্তর দেওয়া হয়েছে, ( লেট এবং ভারের মধ্যে পার্থক্য দেখুন )।

বিঃদ্রঃ

বাস্তবে letএবং varহয় ভিন্ন থেকে NSStringএবং NSMutableStringকিন্তু এটা উপমা সাহায্য করে।


@ রজনী071 কেন এটি একটি সংকলন সময় ত্রুটি দেবে?
ফগমিস্টার

letএকটি ধ্রুবক তৈরি করে। (এনএসএসস্ট্রিংয়ের মতো সাজানো)। একবার সেট হয়ে গেলে আপনি এর মান পরিবর্তন করতে পারবেন না। আপনি এখনও এটিকে অন্য জিনিসগুলিতে যুক্ত করতে পারেন এবং যদিও নতুন ভেরিয়েবল তৈরি করতে পারেন। varএকটি পরিবর্তনশীল তৈরি করুন। (NSMutableString এর মতো সাজানো) যাতে আপনি এর মান পরিবর্তন করতে পারেন। তবে এসও-তে বেশ কয়েকবার উত্তর দেওয়া হয়েছে। সন্ধান করুনdifference between let and var
ফোগমিস্টার

আসুন একটি = "হ্যালো" যাক বি = "ওয়ার্ল্ড" প্রথমে = এ + "," + বি কাজ করে না, এটিই কাজ করে, প্রথমে = "(ক), (খ)" দিন। আপনি প্রথম পদ্ধতির সাথে একটি রানটাইম ত্রুটি পাবেন
জোসেফ

1
@ জোসেফ আমার পক্ষে ভাল কাজ করে। i.imgur.com/T15s4Sp.png নিচের ভোটের জন্য ধন্যবাদ।
ফোগমিস্টার

@ ফগমিস্টার আপনি এক্সকোডের কোন সংস্করণ ব্যবহার করছেন? XCode 6.3 বিটাতে কাজ করছে না, এটি সম্ভবত সর্বশেষ সংস্করণে কাজ করছে
জোসেফ

62

আপনি এই পদ্ধতিতে একটি স্ট্রিং যুক্ত করতে পারেন:

  • str += ""
  • str = str + ""
  • str = str + str2
  • str = "" + ""
  • str = "\(variable)"
  • str = str + "\(variable)"

আমি মনে করি আমি তাদের নামকরণ করেছি।


31
var language = "Swift" 
var resultStr = "\(language) is a new programming language"

25
পার্শ্ব নোট হিসাবে, একে স্ট্রিং ইন্টারপোলেশন বলা হয়, সংক্ষিপ্তকরণ নয়।
ডাস্ট্রো

13

এটিও কাজ করবে:

var string = "swift"
var resultStr = string + " is a new Programming Language"

11

one এটি একটি স্ট্রিংকে অন্য স্ট্রিংয়ের সাথে যুক্ত করতে ব্যবহৃত হচ্ছে।

var first = "Hi" 
var combineStr = "\(first) Start develop app for swift"

আপনি এটি ব্যবহার করে দেখতে পারেন: - + কীওয়ার্ড।

 var first = "Hi" 
 var combineStr = "+(first) Start develop app for swift"

এই কোড ব্যবহার করে দেখুন।



9

খুব সহজ:

let StringA = "Hello"
let StringB = "World"
let ResultString = "\(StringA)\(StringB)"
println("Concatenated result = \(ResultString)")

বাlet ResultString = "\(StringA)\(StringB)"
আকস

যদি ইন্টারপোলেশন ব্যবহার করে তবে + এর প্রয়োজন হয় না, যেমনটি আকস উল্লেখ করেছেন। আপনি যদি + ব্যবহার করতে পছন্দ করেন তবে ইন্টারপোলেশনটি সরিয়ে দিন।
রঘু তেজা

9

আপনি এখন সুইফটে স্ট্রিংবাই অ্যাপেন্ডিংস্ট্রিং ব্যবহার করতে পারেন ।

var string = "Swift"
var resultString = string.stringByAppendingString(" is new Programming Language")

5

এক্সকোড একটি সাধারণ স্ট্রিংয়ের সাথে যুক্ত optionচ্ছিক স্ট্রিং গ্রহণ করেনি। এই সমস্যাটি সমাধান করার জন্য আমি এই এক্সটেনশনগুলি লিখেছি:

extension String {
    mutating func addString(str: String) {
        self = self + str
    }
}

তারপরে আপনি এটিকে কল করতে পারেন:

var str1: String?
var str1 = "hi"
var str2 = " my name is"
str1.addString(str2)
println(str1) //hi my name is

তবে আপনি এখন এর মতো কিছু করতে পারেন:

var str1: String?
var str1 = "hi"
var str2 = " my name is"
str1! += str2

কোন অংশ? আপনি extentions সঙ্গে পরিচিত?
ইসকারুথ

হ্যাঁ, আমি ভাবছিলাম যে '+' কে 'অ্যাডস্ট্রিং ()' এ রূপান্তর করে কী লাভ হয়। যদি আমি সঠিকভাবে মনে রাখি তবে এই পরিবর্তনটি আপনাকে পরিবর্তন করতে না পারার পরিবর্তে একটি সংকলক ত্রুটির পরিবর্তে একটি সতর্কতা দেয় a অন্যথায় এটি কী চলছে তা অবলম্বন করছে এবং, আইএমও, '+' এর চেয়ে পড়া সহজ / দ্রুত কিছুই নয়। সত্যটি হ'ল এমন কোনও কারণ থাকতে পারে যা সম্পর্কে আমি অন্ধ এবং সে কারণেই আমি জিজ্ঞাসা করছিলাম কেন এই
উপায়টি

আমি যখন এক্সকোড একটি সাধারণ স্ট্রিংয়ের সাথে optionচ্ছিক স্ট্রিং যুক্ত করা গ্রহণ না করে তখন আমি এটি ব্যবহার করি। এটি এখনও সরাসরি তা করে না তবে আপনি যখন স্ট্রিংটি আন-জোর করে জোর করেন তখন এটি কাজ করে, তাই এই এক্সটেনশনটি অকেজো এটিএম। আপনি এটি পড়ার পরে আমি এটি মুছে
ফেলব

ব্যাখ্যার জন্য ধন্যবাদ :)। কোনটি ভাল হিসাবে বিবেচিত হবে তা নিশ্চিত নন তবে আপনার উত্তরে প্রসঙ্গটি যুক্ত করে এটির মান আরও শক্ত হবে বর্তমানে এটি আগের মতো কার্যকর নাও হতে পারে।
ব্যবহারকারী3802077

4

একে স্ট্রিং ইন্টারপোলেশন বলা হয়। এটি কনস্ট্যান্টস, ভারিবেল, লিটারেলস এবং এক্সপ্রেশনগুলির সাহায্যে নতুন স্ট্রিং তৈরির উপায়। উদাহরন স্বরূপ:

      let price = 3
      let staringValue = "The price of \(price) mangoes is equal to \(price*price) "

এছাড়াও

let string1 = "anil"
let string2 = "gupta"
let fullName = string1 + string2  // fullName is equal to "anilgupta"
or 
let fullName = "\(string1)\(string2)" // fullName is equal to "anilgupta"

এটি স্ট্রিংয়ের মানগুলিকে সংমিশ্রণ হিসাবেও বোঝায়।

আশা করি এটি আপনাকে সহায়তা করবে।


3

ব্যবহার করে সম্মিলিত স্ট্রিং মুদ্রণ করতে

Println("\(string1)\(string2)")

বা স্ট্রিং 3 2 টি স্ট্রিংয়ের সংমিশ্রণের আউটপুট সংরক্ষণ করে

let strin3 = "\(string1)\(string2)"

3

সুইফটে স্ট্রিংবাই অ্যাপেন্ডিং ফর্ম্যাটটিও ব্যবহার করা যায়।

var finalString : NSString = NSString(string: "Hello")
finalString = finalString.stringByAppendingFormat("%@", " World")
print(finalString) //Output:- Hello World
finalString = finalString.stringByAppendingFormat("%@", " Of People")
print(finalString) //Output:- Hello World Of People

2

সুইফট 4.2

আপনি একটি এক্সটেনশনও ব্যবহার করতে পারেন:

extension Array where Element == String? {
    func compactConcate(separator: String) -> String {
        return self.compactMap { $0 }.filter { !$0.isEmpty }.joined(separator: separator)
    }
}

ব্যবহার করুন:

label.text = [m.firstName, m.lastName].compactConcate(separator: " ")

ফলাফল:

"The Man"
"The"
"Man"

2

থেকে: ম্যাট নিউবুর্গ বই "সুইফট সহ আইওএস 13 প্রোগ্রামিং ফান্ডামেন্টাল।" :

দুটি স্ট্রিং একত্রিত করতে (কনটেনেটেট) , সবচেয়ে সহজ পদ্ধতির হ'ল + অপারেটরটি ব্যবহার করা :

let s = "hello"
let s2 = " world"
let greeting = s + s2

এই সুবিধাজনক স্বরলিপিটি সম্ভব কারণ + অপারেটর অতিরিক্ত লোড হয়েছে: যখন অপারেন্ডগুলি সংখ্যার (সংখ্যাসূচক সংযোজন) হয় এবং অন্যটি যখন অপারেন্ডগুলি স্ট্রিং হয় (কনটেন্টেশন) তখন এটি একটি কাজ করে। + অপারেটর একটি দিয়ে আসে + + = নিয়োগ শর্টকাট; স্বাভাবিকভাবেই, বাম দিকের ভেরিয়েবলটি অবশ্যই বর্ণ সহ ঘোষিত হয়েছে:

var s = "hello"
let s2 = " world"
s += s2

একটি হিসাবে বিকল্প থেকে + + = , আপনি কল করতে পারেন পরিশেষে যোগ (: _ :) উদাহরণস্বরূপ পদ্ধতি:

var s = "hello"
let s2 = " world"
s.append(s2)

সংযুক্তকরণের স্ট্রিংগুলির আরেকটি উপায় হ'ল যুক্ত (বিভাজক :) পদ্ধতিটি। আপনি সংক্ষিপ্ত হওয়ার জন্য স্ট্রিংগুলির একটি অ্যারে দিয়ে শুরু করুন এবং এগুলির মধ্যে একটি beোকানোর জন্য স্ট্রিংটি হস্তান্তর করুন:

let s = "hello"
let s2 = "world"
let space = " "
let greeting = [s,s2].joined(separator:space)

1

এটি করার জন্য আপনি সুইফটস্ট্রিং ( https://github.com/amayne/SwiftString ) ব্যবহার করতে পারেন ।

"".join(["string1", "string2", "string3"]) // "string1string2string"
" ".join(["hello", "world"]) // "hello world"

অস্বীকৃতি: আমি এই এক্সটেনশনটি লিখেছি


1

আমি কেবল অবজেক্টিভ-সি থেকে সুইফ্ট (4) এ স্যুইচ করেছি, এবং আমি দেখতে পাই যে আমি প্রায়শই ব্যবহার করি:

let allWords = String(format:"%@ %@ %@",message.body!, message.subject!, message.senderName!)

0

সুইফটে 5 আপেল # প্রতীক ব্যবহার করে কাঁচা স্ট্রিংগুলি উপস্থাপন করেছে।

উদাহরণ:

print(#"My name is "XXX" and I'm "28"."#)
let name = "XXX"
print(#"My name is \#(name)."#)

প্রতীক # এর পরে প্রয়োজনীয় after একটি নিয়মিত \ (নাম) স্ট্রিংয়ের অক্ষর হিসাবে ব্যাখ্যা করা হবে।


0

সুইফট 5

আপনি appendingএপিআই ব্যবহার করে এটি অর্জন করতে পারেন । এটি রিসিভারে প্রদত্ত স্ট্রিং যুক্ত করে একটি নতুন স্ট্রিং প্রদান করে।

এপিআই বিশদ: এখানে

ব্যবহার :

var text = "Hello"
text = text.appending(" Namaste")

ফলাফল :

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