如果长度小于规定长度,如何将更多字符串添加到组合字符串中?
How to add more strings to the combined string if the length is less than prescribed length?
在 iOS 中,我使用两个字符串组合并形成一个字符串。但合并后的字符串必须是 16 个字符。因此,如果两个字符串很小,并且如果我们将两者组合在一起,并且如果它少于 16 个字符,我必须添加更多字符以使其达到 16 个字符。如何实现?
NSString *combined = [NSString stringWithFormat:@"%@%@", stringURL, stringSearch];
这是我正在使用的代码。那么,如果我合并后它少于 16 个字符,如何计算它并添加更多字符使其成为 16 个字符?
如下所示
NSString *combined = [NSString stringWithFormat:@"%@%@", stringURL, stringSearch];
if (combined.length < 16)
{
NSString *newCombined = [NSString stringWithFormat:@"%@%@", combined, @"Some new string"];
}
您可以使用 substringWithRange
: 来自 NSString
的方法。您可以以下面的代码为例,根据您的需求进行修改。
if (combined.length > 25)
{
NSString *beginning = [combined substringWithRange:NSMakeRange(0, 15)];
NSString *fromEnd = [combined substringWithRange:NSMakeRange(startPoint, combined.length-startPoint)];
}
您可以使用 stringWithFormat
- 如果您只想用一个字符填充,基本上可以使用 printf
。下面我给出了一些我构建的例子来说明,所以它不会 运行 开箱即用,但你只需要注释掉你不想让它工作的那些。
// To get 50 spaces
NSString * s50 = [NSString stringWithFormat:@"%*s", 50, ""];
// Pad with these characters, select only 1
// This will pad with spaces
char * pad = "";
// This will pad with minuses - you need enough to fill the whole field
char * pad = "-------------------------------------------------------";
// Some string
NSString * s = @"Hi there";
// Here back and front are just int's. They must be, but they can be calculated,
// e.g. you could have this to pad to 50
int back = 50 - s.length; if ( back < 0 ) back = 0;
// Pad s at the back
int back = 20;
NSString * sBack = [NSString stringWithFormat:@"%@%*s", s, back, pad];
// Pad s in front
int front = 10;
NSString * sFront = [NSString stringWithFormat:@"%*s%@", front, pad, s];
// Pad s both sides
NSString * sBoth = [NSString stringWithFormat:@"%*s%@%*s", front, pad, s, back, pad];
请注意,此处的金额已参数化。我用例如第一行是 50,但也可以是 n
,只要 n
是一个整数,您就可以使用它来执行计算,将其存储在 n
中并填充。代码中有示例。
这是输出示例
2020-11-04 08:16:22.908828+0200 FormatSpecifiers[768:15293] [Hi there-------------------------------------------------------]
2020-11-04 08:16:22.908931+0200 FormatSpecifiers[768:15293] [-------------------------------------------------------Hi there]
2020-11-04 08:16:22.908992+0200 FormatSpecifiers[768:15293] [-------------------------------------------------------Hi there-------------------------------------------------------]
我只是展示如何填充组合字符串。要组合字符串当然只需使用 stringByAppendingString
例如
NSString * s = [a stringByAppendingString:b];
然后您可以根据 s.length
进行计算,例如如示例所示。
在 iOS 中,我使用两个字符串组合并形成一个字符串。但合并后的字符串必须是 16 个字符。因此,如果两个字符串很小,并且如果我们将两者组合在一起,并且如果它少于 16 个字符,我必须添加更多字符以使其达到 16 个字符。如何实现?
NSString *combined = [NSString stringWithFormat:@"%@%@", stringURL, stringSearch];
这是我正在使用的代码。那么,如果我合并后它少于 16 个字符,如何计算它并添加更多字符使其成为 16 个字符?
如下所示
NSString *combined = [NSString stringWithFormat:@"%@%@", stringURL, stringSearch];
if (combined.length < 16)
{
NSString *newCombined = [NSString stringWithFormat:@"%@%@", combined, @"Some new string"];
}
您可以使用 substringWithRange
: 来自 NSString
的方法。您可以以下面的代码为例,根据您的需求进行修改。
if (combined.length > 25)
{
NSString *beginning = [combined substringWithRange:NSMakeRange(0, 15)];
NSString *fromEnd = [combined substringWithRange:NSMakeRange(startPoint, combined.length-startPoint)];
}
您可以使用 stringWithFormat
- 如果您只想用一个字符填充,基本上可以使用 printf
。下面我给出了一些我构建的例子来说明,所以它不会 运行 开箱即用,但你只需要注释掉你不想让它工作的那些。
// To get 50 spaces
NSString * s50 = [NSString stringWithFormat:@"%*s", 50, ""];
// Pad with these characters, select only 1
// This will pad with spaces
char * pad = "";
// This will pad with minuses - you need enough to fill the whole field
char * pad = "-------------------------------------------------------";
// Some string
NSString * s = @"Hi there";
// Here back and front are just int's. They must be, but they can be calculated,
// e.g. you could have this to pad to 50
int back = 50 - s.length; if ( back < 0 ) back = 0;
// Pad s at the back
int back = 20;
NSString * sBack = [NSString stringWithFormat:@"%@%*s", s, back, pad];
// Pad s in front
int front = 10;
NSString * sFront = [NSString stringWithFormat:@"%*s%@", front, pad, s];
// Pad s both sides
NSString * sBoth = [NSString stringWithFormat:@"%*s%@%*s", front, pad, s, back, pad];
请注意,此处的金额已参数化。我用例如第一行是 50,但也可以是 n
,只要 n
是一个整数,您就可以使用它来执行计算,将其存储在 n
中并填充。代码中有示例。
这是输出示例
2020-11-04 08:16:22.908828+0200 FormatSpecifiers[768:15293] [Hi there-------------------------------------------------------]
2020-11-04 08:16:22.908931+0200 FormatSpecifiers[768:15293] [-------------------------------------------------------Hi there]
2020-11-04 08:16:22.908992+0200 FormatSpecifiers[768:15293] [-------------------------------------------------------Hi there-------------------------------------------------------]
我只是展示如何填充组合字符串。要组合字符串当然只需使用 stringByAppendingString
例如
NSString * s = [a stringByAppendingString:b];
然后您可以根据 s.length
进行计算,例如如示例所示。