ios - 删除 NSString 的最后一个字符,直到遇到分隔符

标签 ios objective-c nsstring substring

我有一个字符串,它使用“-”作为分隔符显示库存量。

它是这样构建的:localStock-wareHouseStock-supplierStock

现在我想更新字符串末尾的 supplierStock,但是正如您在下面的代码中看到的那样,当原始字符串返回超过一个空格值(例如 20)时,它会出错。

有没有办法删除最后一个“-”之前的所有字符(或删除第二个“-”之后的字符)?

NSMutableString *string1 = [NSMutableString stringWithString: p1.colorStock];
                NSLog(@"string1: %@",string1);
                NSString *newString = [string1 substringToIndex:[string1 length]-2];
                NSLog(@"newString: %@",newString);
                NSString *colorStock = [NSString stringWithFormat:@"%@-%@",newString,p2.supplierStock];
                NSLog(@"colorstock: %@",colorStock);
                p1.colorStock = colorStock;

NSLog1

string1: 0-0-0
newString: 0-0
colorstock: 0-0-20

NSLog2

string1: 0-0-20
newString: 0-0-
colorstock: 0-0--20

编辑:感谢 Srikar,让它工作了!

NSString *string1 = [NSString stringWithString: p1.colorStock];
                NSLog(@"string1: %@",string1);
                NSString  *finalString = [string1 stringByReplacingOccurrencesOfString:[[string1 componentsSeparatedByString:@"-"] lastObject] withString:p2.supplierStock.stringValue];
                NSLog(@"finalString: %@",finalString);
                p1.colorStock = finalString;

最佳答案

为什么不使用 componentsSeparatedByString 后接 lastObject

NSString *supplierStock = [[string1 componentsSeparatedByString:@"-"] lastObject];

如果“库存量”总是以“-”分隔的 3 为一组,则上述方法有效。此外,由于您总是需要 supplierStock,lastObject 非常适合您的需求。

当然,在将 string1- 拆分后,您会得到一个 NSArray 实例,您可以使用 objectAtIndex:index 访问各个组件。所以如果你想要 localStock 你可以通过

NSString *localStock = [[string1 componentsSeparatedByString:@"-"] objectAtIndex:0];

关于ios - 删除 NSString 的最后一个字符,直到遇到分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15244887/

相关文章:

ios - Swift 中的滑动页面转换

ios - iOS5,iOS4,…统计资料?

ios - 有没有办法为 UICollectionView 中的特定部分应用自定义流布局?

iphone - 我们如何在 nsstring 中写入“?

html - 从 iOS 中的下载字符串中提取 URL

ios - nsarray 的所有元素是否存在于 nsstring 中

ios - 使用 GPUImage 和 GPUImageHoughTransformLineDetector 检测突出显示的文本边界框

ios - NSInvalidArgumentException原因: unrecognized selector sent to instance

ios - 不断收到 "Unbalanced calls to begin/end appearance transitions for <ViewController>"错误

iphone - 没有工具栏或导航栏的 UiBarButtonItem