সুইটে ইন স্ট্রিং এ স্ট্রিং রূপান্তর করুন


553

আমি কাজ একটি কাস্ট করার জন্য কিভাবে চেষ্টা করছি Intএকটি মধ্যে Stringসুইফট হবে।

আমি একটি workaround খুঁজে বের করছি, ব্যবহার করে NSNumberতবে আমি সুইফটে কীভাবে এটি করব তা নির্ধারণ করতে পছন্দ করব।

let x : Int = 45
let xNSNumber = x as NSNumber
let xString : String = xNSNumber.stringValue

উত্তর:


960

রূপান্তর Intকরা String:

let x : Int = 42
var myString = String(x)

এবং অন্যান্য উপায়ে - রূপান্তর Stringকরা Int:

let myString : String = "42"
let x: Int? = myString.toInt()

if (x != nil) {
    // Successfully converted String to Int
}

অথবা আপনি যদি সুইফট 2 বা 3 ব্যবহার করেন:

let x: Int? = Int(myString)

2
এটি কাজ করার সময়, toStringনীচে একটি উত্তরে দেখানো ফাংশনটি ব্যবহার করুন ।
ybakos

2
Intএকটি আছে বলে মনে হচ্ছে না toString()আমি দেখতে একটি বিশ্বব্যাপী বলেও কিছু নেই; পদ্ধতি অন্তত মধ্যে Xcode 6.2 সম্পাদনা করতে toStringপদ্ধতি ( না Int.toString() ), যে কেউ ব্যবহার উপর সুবিধা জানি String()কন্সট্রাকটর?
নিলোক

নোট করুন যে String(Int?)"ptionচ্ছিক (ইন্ট)" লিখেছেন, কমপক্ষে সুইফট 2-এ, এটি আপনি বোঝাতে চেয়েছিলেন না। পরিবর্তে ব্যবহার করুনInt?.description
তেজয়

আশ্চর্যজনক, তবে আমার পক্ষে কাজ করে না। আমার কাছে একটি বিকল্প Int আমার জন্য কোনও স্ট্রিং () বা টু ইন্ট () পদ্ধতি উপলব্ধ নেই, বা স্ট্রিংভ্যালু এবং ইনটাল্যু নেই। এমনকি একটি স্ট্রিং (myInt!) আমাকে বলবে যে প্রারম্ভিকটি স্ট্রিংয়ের মতো কিছুতে নামকরণ করা হয়েছে (বর্ণনা: myInt!)।
মোটি শ্নের

9
সুইফ্ট 4-এর জন্য নীচে হামেদ ঘের উত্তর দেখুন। সঠিক ব্যবহার হয়String(describing: x)
ডেভিড গে

92

নীচে উত্তরটি দেখুন:

let x : Int = 45
var stringValue = "\(x)"
print(stringValue)

45
মেহ, এটি ইতিমধ্যে একটি কুরুচিপূর্ণ এবং অপ্রয়োজনীয় কর্মবিরোধী যখন Stringইতিমধ্যে কোনও কনস্ট্রাক্টর গ্রহণ করছেনInt
গ্যাব্রিয়েল পেট্রোনেলা

3
এটাকে কী ভুল মনে হচ্ছে? আপনি ভোট কেন রেখেছেন? @ গ্যাব্রিয়েলপেট্রোনেলা
প্রিমকুমার

2
এটি পছন্দসই ফলাফল অর্জনের একটি ভয়ঙ্কর উপায়। উত্তরটি প্রযুক্তিগতভাবে সঠিক, তবে, এবং এই কারণে আমি হ্রাস পাই নি।
গ্যাব্রিয়েল পেট্রোনেলা

আমি মনে করি না যে এটি বিশেষভাবে কুৎসিত, কিছু পার্সিং সরঞ্জামগুলি স্ট্রিং ইন্টারপোলেশনটি সুন্দরভাবে পরিচালনা করতে পারে না। অন্যথায়, কে জানে - এটি দ্রুততর হতে পারে। জাভাস্ক্রিপ্টে "" + এক্স ব্যবহার করা সাধারণত স্ট্রিং কনস্ট্রাক্টর ব্যবহারের চেয়ে দ্রুত হয়। এই উদাহরণটি কেবলমাত্র কয়েকটি অক্ষর ছোট, তবে আপনি অবশ্যই বেশ কয়েকটি ভেরিয়েবলের বাক্যটি নির্মাণের ক্ষেত্রে স্ট্রিং ইন্টারপোলেশনটি পছন্দ করবেন।
Desty

1
আমি এই উত্তরটিকে কুৎসিত বলেই কমিয়ে দেব না তবে @ গ্যাব্রিলিপেট্রোনেলা বলেছে যে, যখন Stringকোনও কনস্ট্রাক্টর গ্রহণ করে তখন স্ট্রিং ইন্টারপোলেশন ব্যবহার করার দরকার নেই Int। এটি আরও স্পষ্ট এবং সংক্ষিপ্ত।
ইসুর

58

এখানে 4 টি পদ্ধতি:

var x = 34
var s = String(x)
var ss = "\(x)"
var sss = toString(x)
var ssss = x.description

আমি ভাবতে পারি যে কিছু লোকের এস এস নিয়ে সমস্যা হবে। তবে আপনি যদি অন্য সামগ্রী যুক্ত স্ট্রিং তৈরি করতে চাইছিলেন তবে কেন হবে না।


5
আমি কেবল সুইফট এবং আইওএস ৮ এর স্ট্যানফোর্ড ইউ নতুন কয়েকটি কোর্সটি দেখছি watch আপনার var ss = "\(x)"উদাহরণটি হ'ল তারা ঠিক কীভাবে ডাবলকে একটি স্ট্রিতে রূপান্তরিত করার পরামর্শ দিয়েছিল advised যা আমি ভেবেছিলাম সহজ এবং দুর্দান্ত।
মার্খুন্তে

এবং সাস সম্পর্কে আরও চিন্তা করা - এটি সত্যিই খারাপ।
আয়ান ব্র্যাডবেরি


1
s এখন (সুইফ্ট 3.1) স্ট্রিং (বর্ণনা: এক্স) পুরানো সিনট্যাক্স সংকলক ত্রুটি দেয়।
মোটি শ্নের

3
@ মোটিশিনার না, এটি ভুল। String(describing:)ডিবাগিং ছাড়া অন্য কোনও কিছুর জন্য কখনও ব্যবহার করা উচিত নয়। এটি সাধারণ স্ট্রিং ইনিশিয়ালাইজার নয়।
এরিক আয়া

55

সুইফটে 3.0 :

var value: Int = 10
var string = String(describing: value)

7
এটা ভুল. String(describing:)ডিবাগিং ছাড়া অন্য কোনও কিছুর জন্য কখনই ব্যবহার করা উচিত নয়। এটি সাধারণ স্ট্রিং ইনিশিয়ালাইজার নয়।
এরিক আয়া

এটি কি এখনও সুইফট 5 এ ভুল? @ আইয়াইও, ডকুমেন্টেশন থেকে বেস করা কারণ এটি ভুল বলে মনে হচ্ছে না
জোনিলি জামে

27

সুইফট 4 :

let x:Int = 45
let str:String = String(describing: x)

বিকাশকারী.অ্যাপেল ডটকম> স্ট্রিং> টিআইএন (বর্ণিত :)

স্ট্রিং (বর্ণন :) ইনিশিয়ালাইজার হ'ল যে কোনও ধরণের উদাহরণকে স্ট্রিতে রূপান্তর করার জন্য পছন্দের উপায়।

কাস্টম স্ট্রিং রূপান্তরযোগ্য

এখানে চিত্র বর্ণনা লিখুন


3
ফলাফল
ptionচ্ছিক

11
এটা ভুল. String(describing:)ডিবাগিং ছাড়া অন্য কোনও কিছুর জন্য কখনও ব্যবহার করা উচিত নয়। এটি সাধারণ স্ট্রিং ইনিশিয়ালাইজার নয়।
এরিক আয়া

3
হামেদ জিএইচ, মরিথ্জ ইতিমধ্যে একই প্রশ্নের সঠিক উত্তর সরবরাহ করেছে আমার উত্তরটি পরীক্ষা করে দেখুন মাত্র সাধারণ স্ট্রিং () আরম্ভকারী ব্যবহার করুন। তবে এটিকে কোনও wচ্ছিক দিন না, প্রথমে মোড়ক করুন। অথবা, আপনার উদাহরণের মতো ব্যবহার করুন ?? এটির মতো: লেট স্ট্র = স্ট্রিং (x ?? 0)
হর্ষিল কোটিচা

2
@ হামেদঘ আপনি যে লিঙ্কটি দিয়েছেন তাতে উদাহরণগুলি দেখুন। describingপদ্ধতি এখানে থেকে ... বর্ণনা এর বিষয়বস্তু। এটি একটি বিবরণ দেয়। কখনও কখনও রূপান্তর হিসাবে একই, কখনও কখনও না । একটি alচ্ছিক দিন describingএবং আপনি ফলাফলটি দেখতে পাবেন ... এটি কোনও রূপান্তর হবে না। রূপান্তর করার একটি সহজ, নিবেদিত উপায় আছে: অন্যান্য স্ট্রিং ইনিশিয়ালাইজারটি ব্যবহার করে, অন্য উত্তরে বর্ণিত explained আপনি যে লিঙ্কটি লিঙ্ক করেছেন তার পুরো পৃষ্ঠাটি পড়ুন: দেখুন যে এই পদ্ধতিটি বিভিন্ন উপায়ে ব্যবহার করে বর্ণনার জন্য অনুসন্ধান করে, যার মধ্যে কিছু সঠিক ফলাফল দেয় যদি আপনি সঠিক রূপান্তর আশা করেন ..
এরিক আয়া

2
আপনার এই উত্তরটির বর্ণনামূলক অংশটি সত্যই সরানো উচিত। স্ট্রিং কনস্ট্রাক্টরের কোনও পরামিতি নাম ব্যবহার না করে রূপান্তর করা উচিত।
টিমটোইওস

26

কেবল সম্পূর্ণতার জন্য, আপনি এটি ব্যবহার করতে পারেন:

let x = 10.description

বা অন্য কোনও মান যা কোনও বিবরণ সমর্থন করে।


5
কোনও লেবেলে মানটি দেখানোর চেষ্টা করার সময় এটি আমার পক্ষে কাজ করেছিল। সঙ্গে অন্যান্য পন্থা এটা সবসময় ঐচ্ছিক ছিল (0) পরিবর্তে 0. আপনাকে ধন্যবাদ
Hardcore_Graverobber

11

সুইফট 4:

Ption চ্ছিক () শব্দ ছাড়া লেবেলে মানটি দেখানোর চেষ্টা করা হচ্ছে ।

এখানে এক্স ব্যবহার করে একটি আন্ত মান হয়।

let str:String = String(x ?? 0)

3
নং String(describing:)ডিবাগিং ছাড়া অন্য কিছু কখনও ব্যবহার করা উচিত। এটি সাধারণ স্ট্রিং ইনিশিয়ালাইজার নয়।
এরিক আয়া

হ্যালো @ মরিটস তাই optionচ্ছিক শব্দটি সরিয়ে দেওয়ার জন্য আমি কী করতে পারি? আমার কোনও মান মূল্য আছে এবং আমি লেবেলে মুদ্রণ করতে চাই
হর্ষিল কোটিচা

কেবলমাত্র সাধারণ String()আরম্ভকারী ব্যবহার করুন । তবে এটিকে কোনও wচ্ছিক দিন না, প্রথমে মোড়ক করুন। অথবা, আপনার উদাহরণের মতো ব্যবহার করুন ??। এটির মতো:let str = String(x ?? 0)
এরিক আয়া


এটি বেশিরভাগ ডিবাগিংয়ের উদ্দেশ্যে। আপনি ক্লাসগুলির নাম বর্ণনা করতে পারেন, উদাহরণগুলির বর্ণনা পেতে পারেন ইত্যাদি etc. তবে এটি অ্যাপ্লিকেশনটিতে ব্যবহৃত স্ট্রিংগুলির জন্য কখনই ব্যবহার করা উচিত নয়।
এরিক আয়া 11

8

ভবিষ্যতে নিজেকে সময় ও ঝামেলা বাঁচানোর জন্য আপনি কোনও ইন্টার এক্সটেনশন করতে পারেন। সাধারণত আমি একটি ভাগ করা কোড ফাইল তৈরি করি যেখানে আমি এক্সটেনশানগুলি, এনামগুলি এবং অন্যান্য মজাদার জিনিস রাখি। এখানে এক্সটেনশন কোডটি দেখতে কেমন:

extension Int
{
    func toString() -> String
    {
        var myString = String(self)
        return myString
    }
}

তারপরে আপনি যখন কোনও স্ট্রিতে কোনও রূপান্তর করতে চান আপনি ঠিক তেমন কিছু করতে পারেন:

var myNumber = 0
var myNumberAsString = myNumber.toString()

সম্ভাব্য মূ ?় প্রশ্ন, তবে এটি কি কোনও ফাংশন, বা একটি গণিত পরিবর্তনশীল হওয়া উচিত? আমি স্মরণ করতে পারে এক সুইফট স্বাভাবিকভাবে এই ক্ষেত্রে ব্যবহার করে - এটা toIntবা toInt()
মরি মারকোভিটস

1
নিজেকে কিছুটা সময় বাঁচাতে এবং ঝামেলা ব্যবহার করুন myNumber.description। কোনও এক্সটেনশনের দরকার নেই।
nyg

8

মধ্যে দ্রুতগতি 3.0 এইভাবে আমরা রূপান্তর করতে পারেন Intকরতে Stringএবং StringকরতেInt

//convert Integer to String in Swift 3.0

let theIntegerValue :Int = 123  // this can be var also
let theStringValue :String = String(theIntegerValue)


//convert String to Integere in Swift 3.0


let stringValue : String = "123"
let integerValue : Int = Int(stringValue)!

1
কোডের শেষ লাইনে কেন আমাদের শেষে বিস্মৃত চিহ্নের প্রয়োজন?
ওমর তারিক

@ ওমতারিক, কারণ আমরা স্পষ্টভাবে সংকলককে বলি যে integerValueএর ধরণ Int। তাহলে এর জন্য কোনও শূন্য মান থাকতে পারে না। তাই সংকলক আপনাকে এটিকে আবদ্ধ করতে বলে। আপনি যদি এড়াতে চান তবে এটি পছন্দ করুন let integerValue = Int(stringValue)। তাহলে আপনার কোন সমস্যা হবে না। দেরী উত্তর দেওয়ার জন্য দুঃখিত.
চানাকা

1
এক্ষেত্রে ওমরতারিক আন-র্যাপিং করা সত্যিই খারাপ হতে পারে। স্ট্রিংটি যদি একটি নম্বর না হয় তবে এটি আপনার অ্যাপ্লিকেশনটিকে ক্রাশ করবে। এটি বৈধ কিনা তা নিশ্চিত করার জন্য আপনার সত্যই পরীক্ষা করা উচিত এবং এটিকে জোর করে জড়ান না।
চার্লি ফিশ

7

যে কারণেই গ্রহণযোগ্য উত্তর আমার পক্ষে কার্যকর হয়নি। আমি এই পদ্ধতির সাথে গিয়েছিলাম:

var myInt:Int = 10
var myString:String = toString(myInt)


4

সুইফট 2:

var num1 = 4
var numString = "56"
var sum2 = String(num1) + numString
var sum3 = Int(numString)

2

আইএম এই সহজ পদ্ধতির ব্যবহার করে

স্ট্রিং টু ইন্টার:

 var a = Int()
var string1 = String("1")
a = string1.toInt()

এবং ইন্টার থেকে স্ট্রিং:

var a = Int()
a = 1
var string1 = String()
 string1= "\(a)"

2

স্ট্রিংয়ে ইউনিকোড ইন্টার রূপান্তর করুন

যারা ইন্টারকে একটি ইউনিকোড স্ট্রিংয়ে রূপান্তর করতে চান, আপনি নিম্নলিখিতটি করতে পারেন:

let myInteger: Int = 97

// convert Int to a valid UnicodeScalar
guard let myUnicodeScalar = UnicodeScalar(myInteger) else {
    return ""
}

// convert UnicodeScalar to String
let myString = String(myUnicodeScalar)

// results
print(myString) // a

বা বিকল্পভাবে:

let myInteger: Int = 97
if let myUnicodeScalar = UnicodeScalar(myInteger) {
    let myString = String(myUnicodeScalar)
}

@ জাভেরেলা, এটি এখনও কাজ করে না। আমি কেবল এটি এক্সকোড ৮.২ (সুইফট ৩.০.২) এ টিকেছি Stringসূচনাকারী একটি গ্রহণ করতে পারেন UnicodeScalar
সুরগাচ


0

স্ট্রিংকে ইন্টারে রূপান্তর করতে

var numberA = Int("10")

Print(numberA) // It will print 10

স্ট্রিং ইন ইন্ট গোপন করতে

var numberA = 10

1 ম উপায়)

print("numberA is \(numberA)") // It will print 10

২ য় উপায়)

var strSomeNumber = String(numberA)

অথবা

var strSomeNumber = "\(numberA)"


0

সুইফট ৩.০-তে আপনি নীচের মত সংখ্যায় স্ট্রিং-এ পরিবর্তন করতে পারেন

let a:String = String(stringInterpolationSegment: 15)

আরেকটি উপায়

let number: Int = 15
let _numberInStringFormate: String = String(number)

// বা 15 এর জায়গায় কোনও পূর্ণসংখ্যার নম্বর


1
এপিআই রেফারেন্স থেকে "সরাসরি এই ইনিশিয়ালাইজারকে কল করবেন না inter আপনি এটি অন্য কোথাও ব্যবহার করছেন কিনা তা দ্বিগুণ করতে চান।
রাহুল শর্মা

0

আমি স্ট্রিং ইন্টারপোলেশন ব্যবহার পছন্দ করি

let x = 45
let string = "\(x)"

প্রতিটি বস্তুর কিছু স্ট্রিং প্রতিনিধিত্ব রয়েছে। এটি বিষয়গুলি সহজ করে তোলে। উদাহরণস্বরূপ যদি আপনার Stringএকাধিক মান সহ কিছু তৈরি করতে হয়। আপনি এতে কোনও গণিতও করতে পারেন বা কিছু শর্তও ব্যবহার করতে পারেন

let text = "\(count) \(count > 1 ? "items" : "item") in the cart. Sum: $\(sum + shippingPrice)"

0

আপনি যদি সুইফট এক্সটেনশন পছন্দ করেন তবে আপনি নিম্নলিখিত কোডটি যুক্ত করতে পারেন

extension Int
{
    var string:String {
        get {
            return String(self)
        }
    }
}

তারপরে, আপনি সবে যুক্ত পদ্ধতি অনুসারে স্ট্রিং পেতে পারেন get

var x = 1234
var s = x.string


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