NSString 中有 setwidth 吗?

发布于 2024-12-28 09:13:12 字数 782 浏览 4 评论 0原文

我想在字符串后面附加固定宽度的空格;例如,我想以这种格式显示数据:

1   faizan   1    locked    10/20/2008
1   faizan   1    locked    10/20/2008
1   faizan   1    locked    10/20/2008
1   faizan   1    locked    10/20/2008

但这仅适用于相同长度的字符串。如果字符串像这样不同:

1   faizan   1    locked    10/20/2008
2   faizanali   1    locked    10/20/2008
3   ali turab gilani    1    locked    10/20/2008

那么这不会修复空格。为了让我可以用相同数量的空格显示数据,我尝试了以下方法:

NSString *titleColumn = [[NSString stringWithFormat:@"%@:", title] stringByPaddingToLength:20 withString:@" " startingAtIndex:0];
serializedValue = [serializedValue stringByAppendingFormat:@"%@%@", titleColumn, value];

但这也不起作用。 Objective-C 是否有像 C++ 和其他语言中那样的 setwidth 类型函数?

I want to append my string with fixed-width spaces; for example, I want to show the data in this format:

1   faizan   1    locked    10/20/2008
1   faizan   1    locked    10/20/2008
1   faizan   1    locked    10/20/2008
1   faizan   1    locked    10/20/2008

But this only works with strings of the same length. If the strings are different like this:

1   faizan   1    locked    10/20/2008
2   faizanali   1    locked    10/20/2008
3   ali turab gilani    1    locked    10/20/2008

then this doesn't fix the spaces. So that I can show the data in with the same number of spaces, I tried this:

NSString *titleColumn = [[NSString stringWithFormat:@"%@:", title] stringByPaddingToLength:20 withString:@" " startingAtIndex:0];
serializedValue = [serializedValue stringByAppendingFormat:@"%@%@", titleColumn, value];

But this also didn't work. Does Objective-C have a setwidth-type function like in C++ and in other languages?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤千羽 2025-01-04 09:13:12

你是这样做的吗?

/* 定义辅助方法 */

- (NSString *)formattedStringWithStrings:(NSArray *)strings {

    NSString *str1 = [[strings objectAtIndex:0] stringByPaddingToLength:3 withString:@" " startingAtIndex:0];
    NSString *str2 = [[strings objectAtIndex:1] stringByPaddingToLength:20 withString:@" " startingAtIndex:0];
    NSString *str3 = [[strings objectAtIndex:2] stringByPaddingToLength:3 withString:@" " startingAtIndex:0];
    NSString *str4 = [[strings objectAtIndex:3] stringByPaddingToLength:10 withString:@" " startingAtIndex:0];
    NSString *str5 = [[strings objectAtIndex:4] stringByPaddingToLength:15 withString:@" " startingAtIndex:0];
    return [NSString stringWithFormat:@"%@%@%@%@%@", str1, str2, str3, str4, str5]; 
}

/* 使用辅助方法 */

NSArray *strings = [NSArray arrayWithObjects:@"1", @"faizan", @"1", @"locked", @"10/20/2008", nil];
NSLog(@"%@", [self formattedStringWithStrings:strings]);

strings = [NSArray arrayWithObjects:@"2", @"faizanali", @"1", @"locked", @"10/20/2008", nil];
NSLog(@"%@", [self formattedStringWithStrings:strings]);

strings = [NSArray arrayWithObjects:@"3", @"ali turab gilani", @"1", @"locked", @"10/20/2008", nil];
NSLog(@"%@", [self formattedStringWithStrings:strings]);

/* 以及输出 */

1  faizan              1  locked    10/20/2008
2  faizanali           1  locked    10/20/2008
3  ali turab gilani    1  locked    10/20/2008

Are you doing it in this way?

/* Define a helper method */

- (NSString *)formattedStringWithStrings:(NSArray *)strings {

    NSString *str1 = [[strings objectAtIndex:0] stringByPaddingToLength:3 withString:@" " startingAtIndex:0];
    NSString *str2 = [[strings objectAtIndex:1] stringByPaddingToLength:20 withString:@" " startingAtIndex:0];
    NSString *str3 = [[strings objectAtIndex:2] stringByPaddingToLength:3 withString:@" " startingAtIndex:0];
    NSString *str4 = [[strings objectAtIndex:3] stringByPaddingToLength:10 withString:@" " startingAtIndex:0];
    NSString *str5 = [[strings objectAtIndex:4] stringByPaddingToLength:15 withString:@" " startingAtIndex:0];
    return [NSString stringWithFormat:@"%@%@%@%@%@", str1, str2, str3, str4, str5]; 
}

/* Use the helper method */

NSArray *strings = [NSArray arrayWithObjects:@"1", @"faizan", @"1", @"locked", @"10/20/2008", nil];
NSLog(@"%@", [self formattedStringWithStrings:strings]);

strings = [NSArray arrayWithObjects:@"2", @"faizanali", @"1", @"locked", @"10/20/2008", nil];
NSLog(@"%@", [self formattedStringWithStrings:strings]);

strings = [NSArray arrayWithObjects:@"3", @"ali turab gilani", @"1", @"locked", @"10/20/2008", nil];
NSLog(@"%@", [self formattedStringWithStrings:strings]);

/* And the output */

1  faizan              1  locked    10/20/2008
2  faizanali           1  locked    10/20/2008
3  ali turab gilani    1  locked    10/20/2008
碍人泪离人颜 2025-01-04 09:13:12

您必须使用 NSMutableString 来实现这一点。逻辑是:

  1. 检查最大长度字符串,例如maxLength
  2. 现在运行 for 循环来迭代所有字符串,如果字符串的当前长度小于 maxLength,则在字符串后附加“”(空格)。
  3. 现在有了最终结果,您将得到具有相同长度的所有字符串。

You have to use NSMutableString to implement this. The logic is:

  1. Check the maximum length string, say maxLength.
  2. Now run a for loop to iterate all strings and append the string with " " (white space) if the current length of the string is less than the maxLength.
  3. Now with final result you will get all strings with same length.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文