如果长度小于规定长度,如何将更多字符串添加到组合字符串中?

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 进行计算,例如如示例所示。