2011-12-28 18 views
11

उदाहरण के लिए, मुझे एनएसएसटींग की कम से कम 8 वर्णों की आवश्यकता है .... इस पर बाएं पैड रिक्त स्थान जोड़ने के लिए लूप का उपयोग करने के बजाय, क्या ऐसा करने के लिए वैसे भी है?रिक्त स्थान के साथ एनएसएसटींग कैसे पैड करें?

int main (int argc, const char * argv[]) { 
    NSString *str = @"Hello"; 
    int add = 8-[str length]; 
    if (add > 0) { 
     NSString *pad = [[NSString string] stringByPaddingToLength:add withString:@" " startingAtIndex:0]; 
     str = [pad stringByAppendingString:str]; 
    } 
    NSLog(@"'%@'", str); 
    return 0; 
} 
+0

मुझे यकीन नहीं है कि मैं अनुसरण करता हूं? –

+0

संभावित डुप्लिकेट [उद्देश्य सी के साथ छोड़े जाने के लिए पैडिंग स्ट्रिंग] (http://stackoverflow.com/questions/964322/padding-string-to-left-with-objective-c) – Abizern

उत्तर

17

यहाँ कैसे आप यह कर सकते का एक उदाहरण है

NSLog(@"%*c%@", 14 - theString.length, ' ', theString); 

इसके अलावा, 14 चौड़ाई जो आप चाहते है।

+4

आप ऐसा क्यों करेंगे? यह पहले से ही 'stringByPaddingToLength: withString: startAtIndex: 'करता है। आप 'str' की घोषणा के बाद सबकुछ से छुटकारा पा सकते हैं और इसके बजाय 'NSLog (@"% @ ", [str stringByPaddingToLength: withString: @" "startAtIndex: 0])' – Chuck

+0

@Chuck हाँ, वह मेरा था प्रारंभिक विचार दुर्भाग्यवश, मेरी समझ यह है कि पैडिंग विधि केवल दाईं ओर पैड, इंडेक्स से वर्णों को ओवरराइट कर रही है। दूसरे शब्दों में, यदि आप शून्य से शुरू करते हैं, तो आपको आठ रिक्त स्थान मिलेंगे। – dasblinkenlight

+0

आह, आप सही हैं, मैंने स्पष्ट रूप से प्रश्न को सही ढंग से नहीं पढ़ा है। मेरी परवाह न करें। – Chuck

8

मैं बस कुछ इस तरह करते हैं:

Examples: 

Input: |Output: 
Hello  | Hello 
Bye  |  Bye 
Very Long |Very Long 
abc  |  abc 
+2

यह टूटा हुआ है, क्या बिल्ली भी इसका मतलब है? –

+0

यह ठीक है अगर लंबाई int में डाली जाती है और स्ट्रिंग 14 से कम है। –

-2

यदि आपको किसी विधि में एक ही जवाब की आवश्यकता है, तो मुझे अपनी परियोजनाओं में उपयोग के लिए एक बनाना था। मूल कोड dashblinkenlight

- (NSString *) LeftPadString: (NSString*) originalString LengthAfterPadding: (int)len paddingCharacter: (char) pad 
{ 
int add = (int) (len - originalString.length); 

NSString* paddingCharString = [NSString stringWithFormat:@"%c" , pad]; 

if (add > 0) 
{ 
    NSString *pad = [[NSString string] stringByPaddingToLength:add withString: paddingCharString startingAtIndex:0]; 
    return [pad stringByAppendingString:originalString]; 
} 
else 
    return originalString; 
} 
+0

'- (एनएसएसटींग *) स्ट्रिंगबीपैडिंग टोलेंथेंथ: (एनएसयूइंटर) नई लम्बाई के साथ स्ट्रिंग: (एनएसएसटींग *) पैडस्ट्रिंग प्रारंभ एट इंडेक्स: (एनएसयूइंटर) पैड इंडेक्स;' –