मुझे एक स्ट्रिंग के अंत से रिक्त स्थान निकालने की आवश्यकता है। मैं उसे कैसे कर सकता हूँ? उदाहरण: यदि स्ट्रिंग है तो "Hello "
यह बन जाना चाहिए"Hello"
मुझे एक स्ट्रिंग के अंत से रिक्त स्थान निकालने की आवश्यकता है। मैं उसे कैसे कर सकता हूँ? उदाहरण: यदि स्ट्रिंग है तो "Hello "
यह बन जाना चाहिए"Hello"
जवाबों:
इस उत्तर से यहां लिया गया: https://stackoverflow.com/a/5691567/251012
- (NSString *)stringByTrimmingTrailingCharactersInSet:(NSCharacterSet *)characterSet {
NSRange rangeOfLastWantedCharacter = [self rangeOfCharacterFromSet:[characterSet invertedSet]
options:NSBackwardsSearch];
if (rangeOfLastWantedCharacter.location == NSNotFound) {
return @"";
}
return [self substringToIndex:rangeOfLastWantedCharacter.location+1]; // non-inclusive
}
whitespaceAndNewlineCharacterSet
।
एक अन्य समाधान में उत्परिवर्तनीय स्ट्रिंग बनाना शामिल है:
//make mutable string
NSMutableString *stringToTrim = [@" i needz trim " mutableCopy];
//pass it by reference to CFStringTrimSpace
CFStringTrimWhiteSpace((__bridge CFMutableStringRef) stringToTrim);
//stringToTrim is now "i needz trim"
हेयर यू गो...
- (NSString *)removeEndSpaceFrom:(NSString *)strtoremove{
NSUInteger location = 0;
unichar charBuffer[[strtoremove length]];
[strtoremove getCharacters:charBuffer];
int i = 0;
for(i = [strtoremove length]; i >0; i--) {
NSCharacterSet* charSet = [NSCharacterSet whitespaceCharacterSet];
if(![charSet characterIsMember:charBuffer[i - 1]]) {
break;
}
}
return [strtoremove substringWithRange:NSMakeRange(location, i - location)];
}
तो अब बस इसे बुलाओ। मान लें कि आपके पास एक स्ट्रिंग है जो सामने की तरफ और अंत में रिक्त स्थान है और आप अंत में रिक्त स्थान को निकालना चाहते हैं, तो आप इसे इस तरह से कॉल कर सकते हैं:
NSString *oneTwoThree = @" TestString ";
NSString *resultString;
resultString = [self removeEndSpaceFrom:oneTwoThree];
resultString
तब अंत में कोई स्थान नहीं होगा।
स्विफ्ट में केवल एक स्ट्रिंग की शुरुआत और अंत से व्हाट्सएप को हटाने के लिए:
string.trimmingCharacters(in: .whitespacesAndNewlines)
string.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet()))
stringByTrimmigCharactersInSet:
- "किसी दिए गए वर्ण सेट में निहित रिसीवर वर्णों के दोनों सिरों को हटाकर बनाई गई एक नई स्ट्रिंग देता है।" developer.apple.com/reference/foundation/nsstring/…
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//for remove whitespace and new line character
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet punctuationCharacterSet]];
//for remove characters in punctuation category
कई अन्य वर्ण हैं। अपनी आवश्यकता के अनुसार इसे स्वयं जांचें।
स्विफ्ट संस्करण
स्ट्रिंग के अंत में केवल ट्रिम्स रिक्त स्थान:
private func removingSpacesAtTheEndOfAString(var str: String) -> String {
var i: Int = countElements(str) - 1, j: Int = i
while(i >= 0 && str[advance(str.startIndex, i)] == " ") {
--i
}
return str.substringWithRange(Range<String.Index>(start: str.startIndex, end: advance(str.endIndex, -(j - i))))
}
स्ट्रिंग के दोनों ओर रिक्त स्थान:
var str: String = " Yolo "
var trimmedStr: String = str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
यह आपकी पसंद के केवल अनुगामी पात्रों को हटा देगा।
func trimRight(theString: String, charSet: NSCharacterSet) -> String {
var newString = theString
while String(newString.characters.last).rangeOfCharacterFromSet(charSet) != nil {
newString = String(newString.characters.dropLast())
}
return newString
}
उद्देश्य-सी में दोनों सिरों के बजाय केवल एक छोर को ट्रिम करने का एक सरल समाधान:
@implementation NSString (category)
/// trims the characters at the end
- (NSString *)stringByTrimmingSuffixCharactersInSet:(NSCharacterSet *)characterSet {
NSUInteger i = self.length;
while (i > 0 && [characterSet characterIsMember:[self characterAtIndex:i - 1]]) {
i--;
}
return [self substringToIndex:i];
}
@end
और केवल शुरुआत को ट्रिम करने के लिए एक सममित उपयोगिता:
@implementation NSString (category)
/// trims the characters at the beginning
- (NSString *)stringByTrimmingPrefixCharactersInSet:(NSCharacterSet *)characterSet {
NSUInteger i = 0;
while (i < self.length && [characterSet characterIsMember:[self characterAtIndex:i]]) {
i++;
}
return [self substringFromIndex:i];
}
@end
सभी अनुगामी व्हाट्सएप पात्रों को ट्रिम करने के लिए (मैं अनुमान लगा रहा हूं कि वास्तव में है आपका इरादा है), निम्नलिखित एक बहुत साफ और संक्षिप्त तरीका है।
स्विफ्ट 5:
let trimmedString = string.replacingOccurrences(of: "\\s+$", with: "", options: .regularExpression)
उद्देश्य सी:
NSString *trimmedString = [string stringByReplacingOccurrencesOfString:@"\\s+$" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, string.length)];
एक लाइन, रेगेक्स के डैश के साथ।
समाधान यहां वर्णित है: एनएसएसटीरिंग के दाहिने छोर से व्हाट्सएप कैसे निकालें?
NSString में निम्नलिखित श्रेणियां जोड़ें:
- (NSString *)stringByTrimmingTrailingCharactersInSet:(NSCharacterSet *)characterSet {
NSRange rangeOfLastWantedCharacter = [self rangeOfCharacterFromSet:[characterSet invertedSet]
options:NSBackwardsSearch];
if (rangeOfLastWantedCharacter.location == NSNotFound) {
return @"";
}
return [self substringToIndex:rangeOfLastWantedCharacter.location+1]; // non-inclusive
}
- (NSString *)stringByTrimmingTrailingWhitespaceAndNewlineCharacters {
return [self stringByTrimmingTrailingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
और आप इसे इस तरह से उपयोग करते हैं:
[yourNSString stringByTrimmingTrailingWhitespaceAndNewlineCharacters]
मैं इस फ़ंक्शन के साथ आया था, जो मूल रूप से एलेक्स द्वारा जवाब में एक के समान व्यवहार करता है:
-(NSString*)trimLastSpace:(NSString*)str{
int i = str.length - 1;
for (; i >= 0 && [str characterAtIndex:i] == ' '; i--);
return [str substringToIndex:i + 1];
}
whitespaceCharacterSet
अंतरिक्ष के अलावा इसमें टैब वर्ण भी शामिल है, जो मेरे मामले में प्रकट नहीं हो सका। तो मुझे लगता है कि एक सादा तुलना पर्याप्त हो सकती है।
स्ट्रिंग = "टेस्ट ट्रिम किए गए स्ट्रिंग"
कोड के नीचे सफेद स्थान और नई लाइन के उपयोग को हटाने के लिए: -
चलो str_trimmed = yourString.trimmingCharacters (में: .whitespacesAndNewlines)
नीचे दिए गए स्ट्रिंग उपयोग से केवल रिक्त स्थान हटाने के लिए: -
let__trimmed = yourString.trimmingCharacters (में: .whitespaces)