স্ট্রিং রিপ্লেসমেশন অবজেক্টিভ-সি


275

একটি চরিত্রটি কীভাবে প্রতিস্থাপন করতে হবে উদ্দেশ্য-সি এর একটি স্ট্রিং?

উত্তর:


781

আপনি পদ্ধতিটি ব্যবহার করতে পারেন

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
                                        withString:(NSString *)replacement

... একটি স্ট্রিং প্রতিস্থাপনের সাথে একটি নতুন স্ট্রিং পেতে ( NSStringঅন্যের জন্য ডকুমেন্টেশন দেখুন )

উদাহরণ ব্যবহার

NSString *str = @"This is a string";

str = [str stringByReplacingOccurrencesOfString:@"string"
                                     withString:@"duck"];

2
আমি ভেবেছিলাম NSString এবং একটি NSMutableString সাবক্লাস থাকার বিষয়টি কারণ এনএসএসস্ট্রিংয়ের একটি উদাহরণ অপরিবর্তনীয় । যদিও - যে কোনও বুদ্ধিমান ব্যক্তির মতো, আমি তার চেয়ে বেশি দিন হাঁসের চেয়ে বেশি পছন্দ করতাম - আপনি কেবল strআমার মনের বিষয়বস্তুগুলিকে ওভাররোট করে দিয়েছিলেন।
এয়ার

1
তবে আমি অনুমান করি strপ্রক্রিয়াটির পরিবর্তিত ঠিকানা
কোলাস

16
এটি পরিবর্তন হয় না। str এখন একটি সম্পূর্ণ নতুন স্ট্রিং রয়েছে। স্ট্রিংবাইরেপ্লেসিংঅ্যাকিউরেন্সস অফ স্ট্রিং স্ট্রিংটিকে রূপান্তরিত করে না। এটি কেবল একটি নতুন স্ট্রিং ফিরে আসে।
সেপ্টিয়াডি আগুস

22

NSStringঅবজেক্টগুলি অপরিবর্তনীয় (এগুলি পরিবর্তন করা যায় না), তবে একটি পরিবর্তনীয় সাবক্লাস রয়েছে, NSMutableStringযা আপনাকে স্ট্রিংয়ের মধ্যে অক্ষর প্রতিস্থাপনের জন্য বিভিন্ন পদ্ধতি দেয়। এটা সম্ভবত আপনার সেরা বাজি।


10

আপনি যদি একাধিক স্ট্রিং প্রতিস্থাপন চান:

NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); // => foobarbazfoo

7

এটি স্ট্রিংবায়ারপ্লেসিংচার্যাক্টরসইনরেঞ্জ সহ স্ট্রিং প্রতিস্থাপন: স্ট্রিং সহ:

for (int i = 0; i < card.length - 4; i++) {

    if (![[card substringWithRange:NSMakeRange(i, 1)] isEqual:@" "]) {

        NSRange range = NSMakeRange(i, 1);
        card = [card stringByReplacingCharactersInRange:range withString:@"*"];

    }

} //out: **** **** **** 1234

0

আইওএস-এ পুরানো সংস্করণগুলিতে সমস্যাটি রয়েছে। সর্বশেষে, ডান থেকে বামে ভাল কাজ করে। আমি যা করেছি তা হ'ল:

প্রথমে আমি আইওএস সংস্করণটি পরীক্ষা করি:

if (![self compareCurVersionTo:4 minor:3 point:0])

চেয়ে:

// set RTL on the start on each line (except the first)  
myUITextView.text = [myUITextView.text stringByReplacingOccurrencesOfString:@"\n"
                                                           withString:@"\u202B\n"];

0
NSString *stringreplace=[yourString stringByReplacingOccurrencesOfString:@"search" withString:@"new_string"];

এই কোডটি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য দয়া করে সম্পাদনা লিঙ্কটি ব্যবহার করুন এবং কেবল কোডটি দেবেন না, কারণ ব্যাখ্যাটি ভবিষ্যতের পাঠকদের সহায়তা করার সম্ভাবনা বেশি। আরও দেখুন কিভাবে উত্তর দিতেউত্স
জেড ফক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.