Satır-C'deki NSString'deki satırları saymak istiyorum.Bir Objective-C dizesinde (NSString) satır sayısı nasıl sayılır?
NSInteger lineNum = 0;
NSString *string = @"abcde\nfghijk\nlmnopq\nrstu";
NSInteger length = [string length];
NSRange range = NSMakeRange(0, length);
while (range.location < length) {
range = [string lineRangeForRange:NSMakeRange(range.location, 0)];
range.location = NSMaxRange(range);
lineNum += 1;
}
Daha kolay bir yol var mı?
NSString *string;
unsigned numberOfLines, index, stringLength = [string length];
for (index = 0, numberOfLines = 0; index < stringLength; numberOfLines++)
index = NSMaxRange([string lineRangeForRange:NSMakeRange(index, 0)]);
article bakınız:
teşekkür ederiz! ! Yukarıdaki durumda, nasıl kodlanır? Programlama için yalvarıyorum özür dilerim – freddiefujiwara
Dize çok uzunsa, her satır için yeni bir dize nesnesi oluşturacağından, bu soruda yazdığınız gibi koddan çok daha az verimli olacağını unutmayın. Performansın bu noktada nerede olduğunuzu ve dizge boyutunda üst sınırın ne olacağını anladığınızdan emin olun. – smorgan