এনএসএসস্ট্রিং থেকে অক্ষরগুলি সরান?


95
NSString *myString = @"A B C D E F G";

আমি স্পেসগুলি সরাতে চাই, তাই নতুন স্ট্রিংটি হবে "এবিসিডিইএফজি"।

উত্তর:


280

আপনি ব্যবহার করতে পারেন:

NSString *stringWithoutSpaces = [myString 
   stringByReplacingOccurrencesOfString:@" " withString:@""];

দয়া করে সুসংগঠনের জন্য আপনি মনসোপাসে ফন্টে কোড স্নিপেটগুলি ফর্ম্যাট করতে পারেন। বর্তমানে প্রথম স্ট্রিংকে আলাদা করা কিছুটা জটিল
মাইক আবদুল্লাহ

4
মনে রাখবেন যে "উপস্থিতি" দুটি র এর সাথে বানানযুক্ত।

প্লাস 1 256 এ পৌঁছানোর আশায়। smh
উইল ভন উলরিচ

এটি কেবলমাত্র কাজ করে যদি 'স্পেসগুলি' ASCII মান = 32 (% 20) অক্ষরের সাথে ভাল আচরণ করা হয়। সমস্ত সম্ভাব্য সাদা-স্থানের অক্ষরগুলি সরাতে নীচে জিম ডোভির সমাধানটি ব্যবহার করুন।
লিনাসেস

80

আপনি যদি একবারে একাধিক স্পেস সমর্থন করতে চান বা কোনও হোয়াইট স্পেস সমর্থন করতে চান তবে আপনি এটি করতে পারেন:

NSString* noSpaces =
    [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
                           componentsJoinedByString:@""];

4
এটি সাধারণ ব্যবহারের জন্য আরও কার্যকর।
এমএক্সজি

আমি এটা পছন্দ করি! আমি একটি ফোন নম্বরটিতে সমস্ত বিশেষ চর সরাতে এবং কেবল অঙ্কগুলি রাখতে চাই।
করিম

অনেক সহজ: আপনার স্ট্রিং = [আপনার স্ট্রিংবাই ট্রাইমিংচ্যাকার্টারসইনসেট: [এনএসচ্যাকারসেট হোয়াইটস্পেসচ্যার্যাকটারসেট]];
ড্যানিয়েল

4
ট্রিমিং কেবল স্ট্রিংয়ের শুরু এবং শেষের সময়ে মিলিত অক্ষরগুলি সরিয়ে দেয়, সুতরাং `ABCDEF` হয়ে যাবে A B C D E F
জিম ডোভে

11

থেকে নেওয়া NSString

stringByReplacingOccurrencesOfString:withString:

একটি নতুন স্ট্রিং প্রত্যাবর্তন করে যেখানে রিসিভারে লক্ষ্য স্ট্রিংয়ের সমস্ত উপস্থিতি অন্য প্রদত্ত স্ট্রিং দ্বারা প্রতিস্থাপিত হয়।

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

পরামিতি

লক্ষ্য

The string to replace.

প্রতিস্থাপন

The string with which to replace target.

ফেরত মূল্য

একটি নতুন স্ট্রিং যাতে রিসিভারের লক্ষ্যগুলির সমস্ত উপস্থিতি প্রতিস্থাপন দ্বারা প্রতিস্থাপিত হয়।


11

উপরে সব ঠিকঠাক করবে। তবে সঠিক পদ্ধতিটি হ'ল:

yourString = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

এটি ট্রিম পদ্ধতির মতো কাজ করবে। এটি সমস্ত সামনের এবং পিছনের স্থান সরিয়ে ফেলবে।

ধন্যবাদ


7
নাহ, এটি কেবল স্ট্রিংয়ের শুরু এবং শেষ থেকে ফাঁকা স্থানগুলি সরিয়ে দেয়, অন্য অক্ষরের মধ্যে ফাঁকা স্থান নয়।
জিম ডোভে

@ জিমডভ্য আমি ইতিমধ্যে আমার মন্তব্যে এই বিষয়টি উল্লেখ করেছি। # এটি ট্রিম পদ্ধতির মতো কাজ করবে। এটি সামনের এবং পিছনের সমস্ত স্থান সরিয়ে ফেলবে # #
মিতেশ খত্রি

4
@ মিতেশখত্রি আপনি করেন তবে এটি এখনও মূল সমস্যাটির সমাধান করতে পারে না, এটি হ'ল স্ট্রিংয়ের মাঝখানে থেকে সমস্ত সাদা অংশ সরিয়ে ফেলা হবে, কেবল শীর্ষস্থানীয় এবং পিছনের সাদা অংশ নয়।
জিম ডোভে

@ জিমডোভী নীচের কোডটি ব্যবহার করে সমস্ত স্থান সরিয়ে নেওয়ার জন্য: মাইএসটিআর = [মাইএসটিআর স্ট্রিংবাইরেপ্লেসিংঅ্যাক্সিয়েন্সসঅফস্ট্রিং: @ "" স্ট্রিং: @ ""];
মিতেশ খত্রি

4
এটি এখনও কেবলমাত্র ASCII স্পেস অক্ষরগুলি সরিয়ে ফেলবে; শূন্য-প্রস্থের স্থান, ইউনিকোড নন-ব্রেকিং স্পেসস, নিউলাইনস, ফর্ম ফিডস, ট্যাবগুলি, উল্লম্ব ট্যাবগুলি ইত্যাদির মতো জিনিসগুলি এখনও স্ট্রিংয়ে থাকবে। অত: পর অস্তিত্ব [NSCharacterSet whitespaceCharacterSet]এবং [NSCharacterSet whitespaceAndNewlineCharacterSet]
জিম ডোভে

6

যদি স্ট্রিংটি পরিবর্তনযোগ্য হয় তবে আপনি এই ফর্মটি ব্যবহার করে এটি জায়গায় রূপান্তর করতে পারেন:

[string replaceOccurrencesOfString:@" "
                        withString:@""
                           options:0
                             range:NSMakeRange(0, string.length)];

আপনি যদি ফলাফলটি কোনও ইনপুট স্ট্রিংয়ের পরিবর্তিত উদাহরণ হতে চান তবে এটিও কার্যকর:

NSMutableString * string = [concreteString mutableCopy];
[string replaceOccurrencesOfString:@" "
                        withString:@""
                           options:0
                             range:NSMakeRange(0, string.length)];

3

আপনি এটি চেষ্টা করতে পারেন

- (NSString *)stripRemoveSpaceFrom:(NSString *)str {
    while ([str rangeOfString:@"  "].location != NSNotFound) {
        str = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
    }
    return str;
}

আশা করি ইহা তোমাকে সাহায্য করবে.

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