এনএসএসস্ট্রিং থেকে সমস্ত সাদা স্থান সরিয়ে ফেলুন


134

আমি একটিতে সাদা স্পেসগুলি থেকে মুক্তি পাওয়ার চেষ্টা করেছি NSString, তবে আমি যে পদ্ধতিতে কাজ করার চেষ্টা করেছি তার কোনওটাই নয়।

আমার আছে "this is a test"এবং আমি পেতে চাই "thisisatest"

আমি ব্যবহার করেছি whitespaceCharacterSet, যা শ্বেত স্থানগুলি মুছে ফেলার কথা বলে।

NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
                           [NSCharacterSet whitespaceCharacterSet]];

তবে আমি স্পেসের সাথে একই স্ট্রিংটি পেতে থাকি। কোন ধারনা?


2
একটি সহজ উপায় নেই, তবে এই লিঙ্কটির দুর্দান্ত উত্তর রয়েছে - stackoverflow.com/questions/758212/…
কফি

2
@ অ্যাডেল তবে, কোনও গ্রহণযোগ্য উত্তর নেই =)
আলমাস আদিলবাক

উত্তর:


303

stringByTrimmingCharactersInSet কেবল স্ট্রিংয়ের শুরু এবং শেষ থেকে অক্ষরগুলি সরিয়ে দেয়, মাঝের অক্ষরগুলি নয়।

1) আপনার স্ট্রিং থেকে যদি কেবলমাত্র একটি নির্দিষ্ট অক্ষর (স্পেস ক্যারেক্টারটি বলে) সরিয়ে ফেলতে হয় তবে ব্যবহার করুন:

[yourString stringByReplacingOccurrencesOfString:@" " withString:@""]

২) আপনার যদি সত্যই অক্ষরের একটি সেট অপসারণ করতে হয় (যেমন কেবল স্থানের অক্ষর নয়, তবে কোনও স্থান, ট্যাব, অবিচ্ছেদ্য স্থান ইত্যাদি) যেমন কোনও শ্বেত স্পেস অক্ষর ব্যবহার করে whitespaceCharacterSetআপনি আবার একটি স্ট্রিংয়ে শব্দগুলি যুক্ত করে আপনার স্ট্রিংকে বিভক্ত করতে পারেন :

NSArray* words = [yourString componentsSeparatedByCharactersInSet :[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString* nospacestring = [words componentsJoinedByString:@""];

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


চমত্কার! অনেক ধন্যবাদ!
iGatiTech

33

আমি এটির মতো রেজেক্স ব্যবহার পছন্দ করি:

NSString *myString = @"this is a test";
NSString *myNewString = [myString stringByReplacingOccurrencesOfString:@"\\s"
                                     withString:@""
                                        options:NSRegularExpressionSearch
                                          range:NSMakeRange(0, [myStringlength])];
 //myNewString will be @"thisisatest"

জীবনকে আরও সহজ করার জন্য আপনি এনএসএসস্ট্রিং এ নিজেকে একটি বিভাগ করতে পারেন:

- (NSString *) removeAllWhitespace
{
    return [self stringByReplacingOccurrencesOfString:@"\\s" withString:@""
                                              options:NSRegularExpressionSearch
                                                range:NSMakeRange(0, [self length])];

}

এটিতে এখানে একটি ইউনিট পরীক্ষার পদ্ধতিও রয়েছে:

- (void) testRemoveAllWhitespace
{
    NSString *testResult = nil;

    NSArray *testStringsArray        = @[@""
                                         ,@"    "
                                         ,@"  basicTest    "
                                         ,@"  another Test \n"
                                         ,@"a b c d e f g"
                                         ,@"\n\tA\t\t \t \nB    \f  C \t  ,d,\ve   F\r\r\r"
                                         ,@"  landscape, portrait,     ,,,up_side-down   ;asdf;  lkjfasdf0qi4jr0213 ua;;;;af!@@##$$ %^^ & *  * ()+  +   "
                                         ];

    NSArray *expectedResultsArray   = @[@""
                                        ,@""
                                        ,@"basicTest"
                                        ,@"anotherTest"
                                        ,@"abcdefg"
                                        ,@"ABC,d,eF"
                                        ,@"landscape,portrait,,,,up_side-down;asdf;lkjfasdf0qi4jr0213ua;;;;af!@@##$$%^^&**()++"
                                        ];

    for (int i=0; i < [testStringsArray count]; i++)
    {
        testResult = [testStringsArray[i] removeAllWhitespace];
        STAssertTrue([testResult isEqualToString:expectedResultsArray[i]], @"Expected: \"%@\" to become: \"%@\", but result was \"%@\"",
                     testStringsArray[i], expectedResultsArray[i], testResult);
    }
}

2
ওহ মানুষ, আমি এই ইউনিট পরীক্ষার ব্যবসা অন্তর্ভুক্ত পছন্দ। এখন আমি কেবল এসও থেকে আমার কোড অনুলিপি করতে পারি না, তবে আমি সেই কোডটির জন্য পরীক্ষাগুলিও কপি-পেস্ট করতে পারি!
টাইলার জেমস

13

ব্যবহার সহজ কাজ stringByReplacingOccurrencesOfString

NSString *search = [searchbar.text stringByReplacingOccurrencesOfString:@" " withString:@""];

1
তবে আপনার সম্মতিতে হোয়াইটস্পেসের প্রয়োজন নেই তবে সম্মত হন। আমি এটি ব্যবহার করতে যাচ্ছিলাম, কিন্তু তখন বুঝতে পারি আমার স্ট্রিংয়ে আমার কাছে নতুন লাইন রয়েছে।
মুবিবব

7

আপনি যদি (হোয়াইটস্পেস) \u00a0স্থির স্থানে অভিজ্ঞ হন তবে এটি আপনাকে সহায়তা করতে পারে । আমি যখন ডিভাইস যোগাযোগ ফোন নম্বরগুলি বের করার চেষ্টা করছিলাম তখন আমার এই সমস্যা হয়েছিল। আমার ফোন নাম্বার স্ট্রিংটি সংশোধন করা দরকার যাতে এর কোনও সাদা জায়গা নেই।

NSString* yourString = [yourString stringByReplacingOccurrencesOfString:@"\u00a0" withString:@""];

yourStringবর্তমান ফোন নম্বরটি কখন ছিল।


এটি একটি টন সাহায্য! আমিও আটকে গেলাম! অনেক অনেক ধন্যবাদ! : ডি
রফি

yourString.replacingOccurrences(of: "\u{00a0}", with: "")
সুইফ্ট

4

স্ট্রিংবায়ারপ্লেসিংঅ্যাকুরিয়েন্সসঅফ স্ট্রিং স্ট্রিংয়ের সাথে সমস্ত শ্বেত স্থানটি কেবলমাত্র শুরু এবং শেষের সাথে প্রতিস্থাপন করবে

ব্যবহার

[YourString stringByTrimmingCharactersInSet:[NSCharacterSet  whitespaceAndNewlineCharacterSet]]

5
আপনি ব্যবহার করতে বলেন stringByReplacingOccurrencesOfStringকিন্তু একটি উদাহরণ দিতে stringByTrimmingCharactersInSet?
ফ্লেক্সিকোডার

4
- (NSString *)removeWhitespaces {
  return [[self componentsSeparatedByCharactersInSet:
                    [NSCharacterSet whitespaceCharacterSet]]
      componentsJoinedByString:@""];
}

যদিও এই কোডটি সমস্যার সমাধান করতে পারে, তবুও ব্যাখ্যাটির কয়েকটি শব্দ ভবিষ্যতের পাঠকদের কাছে এই উত্তরটি মূল্যবান করে তুলতে অনেক বেশি এগিয়ে যাবে।
থম

4

এটি আমার পক্ষে সেরা উপায় সুইফট

        let myString = "  ciao   \n              ciao     "
        var finalString = myString as NSString

        for character in myString{
        if character == " "{

            finalString = finalString.stringByReplacingOccurrencesOfString(" ", withString: "")

        }else{
            finalString = finalString.stringByReplacingOccurrencesOfString("\n", withString: "")

        }

    }
     println(finalString)

এবং ফলাফল: ciaociao

তবে কৌতুকটি এই!

 extension String {

    var NoWhiteSpace : String {

    var miaStringa = self as NSString

    if miaStringa.containsString(" "){

      miaStringa =  miaStringa.stringByReplacingOccurrencesOfString(" ", withString: "")
    }
        return miaStringa as String

    }
}

let myString = "Ciao   Ciao       Ciao".NoWhiteSpace  //CiaoCiaoCiao

4

মার্কো নীচে ব্যবহার করুন এবং স্থান অপসারণ।

#define TRIMWHITESPACE(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]

অন্য ফাইলে ট্রিম কল করুন:

    NSString *strEmail;
    strEmail = TRIM(@"     this is the test.");

এটি আপনাকে সাহায্য করবে ...


3

এটি এমন কোনও স্থান সরিয়ে দেওয়ার জন্য যা আপনি যখন কোনও পাঠ্য ক্ষেত্র থেকে পাঠ্য পেয়ে থাকেন তবে আপনি যদি স্ট্রিংয়ের মধ্যে স্থান সরাতে চান তবে আপনি ব্যবহার করতে পারেন

xyz =[xyz.text stringByReplacingOccurrencesOfString:@" " withString:@""];

এটি খালি স্থানটি কোনও স্থান ছাড়াই প্রতিস্থাপন করবে এবং খালি ক্ষেত্রটি নীচের পদ্ধতি দ্বারা যত্ন নেওয়া হবে:

searchbar.text=[searchbar.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];

-1
pStrTemp = [pStrTemp stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

দয়া করে এই স্নিপেট কী করে তার কিছুটা বিশদভাবে বর্ণনা করুন এবং এর ফর্ম্যাটিংটি ঠিক করুন।
ইউরি

-2

আমি দৃ strongly়ভাবে আপনার প্রকল্পে এটি স্থাপন করার পরামর্শ দিচ্ছি:

extension String {
    func trim() -> String {
        return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
    }

    func trim(withSet: NSCharacterSet) -> String {
        return self.stringByTrimmingCharactersInSet(withSet)
    }
}

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