Ios 重复数数组
我在创建一个程序时遇到了问题,该程序在数组中接收数字并通过字符串返回它们。在我的 main.m文件:Ios 重复数数组,ios,objective-c,arrays,nsarray,Ios,Objective C,Arrays,Nsarray,我在创建一个程序时遇到了问题,该程序在数组中接收数字并通过字符串返回它们。在我的 main.m文件: #import <Foundation/Foundation.h> #import "NumberRepeater.h" int main(int argc, const char * argv[]) { @autoreleasepool { NumberRepeater *repeater1 = [[NumberRepeater alloc]
#import <Foundation/Foundation.h>
#import "NumberRepeater.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
NumberRepeater *repeater1 = [[NumberRepeater alloc]
initWithNumbers: @[@[@1, @10]]];
[repeater1 initWithNumbers:@[@[@1, @10]]];
NSLog(@"%@", [repeater1 process]);
NumberRepeater *repeater2 = [[NumberRepeater alloc]
initWithNumbers: @[@[@1, @2], @[@2, @3]]];
NSLog(@"%@", [repeater2 process]);
NumberRepeater *repeater3 = [[NumberRepeater alloc]
initWithNumbers: @[@[@10, @4], @[@34, @6], @[@92, @2]]];
NSLog(@"%@", [repeater3 process]);
}
return 0;
}
这决不是我需要解决的学校作业。我希望有一个解决方案,但这方面的指导将是伟大的。我觉得我几乎做到了,因为我已经做了类似的问题,并且得到了我需要的输出,但很明显我错过了,我只是不知道是什么。我知道我的过程方法缺少代码,只是我不知道应该在其中放什么。任何帮助都将不胜感激 我没有正确理解您的问题,但我认为您需要一个函数,该函数接受一个数字数组,并返回一个由所有数字组合而成的字符串。如果这是您想要的,您可以创建这样一个函数:-
-(NSString *)getStringFromArray:(NSArray <NSNumber *> *)array{
NSString *numberString = @"";
for (NSNumber *no in array) {
numberString = [numberString stringByAppendingString:no.stringValue];
}
return numberString;
}
输出
Number String 1234
•我需要根据您的问题为您解释数组语法
@[@1,@2,…]
这个NSNumber的数组
对象为Int
Value,因为数组只包含id对象,所以我们不能直接使用Int,但我们使用NSnumber,就像@1一样@[@10,4],@[@3,6],@[@2,9]]
这个数组
@[@[]、@[]、……等]
NSArray
只要给我一个字符串,第一项重复(第二项)几次
解决方案
数字重复器
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface NumberRepeater : NSObject {
NSArray * numbers; // private number array will be initialized during initialization of object
}
- (instancetype)initWithNumbers:(NSArray *)numbers;
- (NSString *)process;
@end
NS_ASSUME_NONNULL_END
#导入
NS\u假设\u非空\u开始
@接口编号重复:NSObject{
NSArray*numbers;//私有数字数组将在对象初始化期间初始化
}
-(instancetype)initWithNumber:(NSArray*)编号;
-(NSString*)过程;
@结束
NS\u假设\u非空\u结束
数字重复器
#import "NumberRepeater.h"
#import <Foundation/Foundation.h>
// NumberRepeater Extention for set private numbers
@interface NumberRepeater ()
@property (nonatomic,retain) NSArray *numbers;
@end
@implementation NumberRepeater
@synthesize numbers;
- (instancetype)initWithNumbers:(NSArray *)numbers {
self = [super init];
if (self) {
self.numbers = numbers;
}
return self;
}
- (NSString *)process {
// if numbers have No Data
if (numbers.count == 0) { return @"0"; }
// Array of array each array have two element first is number to repeat and second have number of repetation
// Example @[@1, @2] repeat number(1) TWO times so out put should be 11
// @[@[@1, @2], @[@2, @3]]
NSMutableString * output = [NSMutableString new];
for (NSArray*item in numbers) {
// Array should be with this Format
// Example @[@1, @2] repeat number(1) TWO times
// assert item have tow items only like that @[@1,@2]
NSAssert(item.count == 2,@"Array Should have Two items only");
NSNumber *numberToRepeat = item[0]; // repeat
NSNumber *repetitionCount = item[1]; //repetition Count
NSMutableString * repeatdString = [NSMutableString new];
for (NSInteger i= 0; i < [repetitionCount integerValue] ; i++) {
[repeatdString appendString:[numberToRepeat stringValue]];
}
[output appendString:repeatdString];
[output appendFormat:@" "]; // space on join with muti array
}
return output;
}
@end
#导入“NumberRepeater.h”
#进口
//设置专用号码的号码重复扩展
@接口编号重复器()
@属性(非原子,保留)NSArray*编号;
@结束
@实现编号重复器
@综合数字;
-(instancetype)initWithNumber:(NSArray*)编号{
self=[super init];
如果(自我){
self.number=数字;
}
回归自我;
}
-(NSString*)进程{
//如果数字没有数据
如果(numbers.count==0){return@“0”;}
//数组的数组每个数组有两个元素,第一个是重复数,第二个是重复数
//例@[@1,@2]重复数字(1)两次,因此输出值应为11
// @[@[@1, @2], @[@2, @3]]
NSMutableString*输出=[NSMutableString new];
用于(NSArray*项目编号){
//数组应使用此格式
//示例@[@1,@2]重复数字(1)两次
//断言项只有两个这样的项@[@1,@2]
NSAssert(item.count==2,@“数组应仅包含两项”);
NSNumber*numberToRepeat=项[0];//重复
NSNumber*repetitionCount=项目[1];//重复计数
NSMutableString*repeatdString=[NSMutableString new];
对于(NSInteger i=0;i<[repetitionCount integerValue];i++){
[RepeatString appendString:[numberToRepeat stringValue]];
}
[output appendString:RepeatedString];
[output appendFormat:@”“];//与多数组连接时的空格
}
返回输出;
}
@结束
main.m
#import <Foundation/Foundation.h>
#import "NumberRepeater.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
NumberRepeater *repeater1 = [[NumberRepeater alloc]
initWithNumbers: @[@[@1, @10]]];
NSLog(@"%@", [repeater1 process]);
NumberRepeater *repeater2 = [[NumberRepeater alloc]
initWithNumbers: @[@[@1, @2], @[@2, @3]]];
NSLog(@"%@", [repeater2 process]);
NumberRepeater *repeater3 = [[NumberRepeater alloc]
initWithNumbers: @[@[@10, @4], @[@34, @6], @[@92, @2]]];
NSLog(@"%@", [repeater3 process]);
}
return 0;
}
#导入
#导入“NumberRepeater.h”
int main(int argc,const char*argv[]{
@自动释放池{
NumberRepeater*repeater1=[[NumberRepeater alloc]
initWithNumber:@[@[@1,@10]];
NSLog(@“%@,[repeater1进程]);
NumberRepeater*repeater2=[[NumberRepeater alloc]
initWithNumber:@[@1,2],@[@2,3]];
NSLog(@“%@,[repeater2进程]);
NumberRepeater*repeater3=[[NumberRepeater alloc]
initWithNumbers:@[@10,4]、@[@34,6]、@[@92,2]];
NSLog(@“%@,[repeater3进程]);
}
返回0;
}
我的预期输出应该是:111111111111111222101010104343434349292谢谢您的回复。那么main.m文件应该包含什么呢?只包含您的question@OmieiOS检查上面
Number String 1234
Example :
Input @[@1,@2] repeat number#1 two times
Output should be 11
Input @[@1,@10] repeat number#1 10 times
Output should be 1111111111
Input @[@[@1,@3],@[@3,@4]] repeat number#1 3 times , number#3 4 time
Output should be 111 3333
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface NumberRepeater : NSObject {
NSArray * numbers; // private number array will be initialized during initialization of object
}
- (instancetype)initWithNumbers:(NSArray *)numbers;
- (NSString *)process;
@end
NS_ASSUME_NONNULL_END
#import "NumberRepeater.h"
#import <Foundation/Foundation.h>
// NumberRepeater Extention for set private numbers
@interface NumberRepeater ()
@property (nonatomic,retain) NSArray *numbers;
@end
@implementation NumberRepeater
@synthesize numbers;
- (instancetype)initWithNumbers:(NSArray *)numbers {
self = [super init];
if (self) {
self.numbers = numbers;
}
return self;
}
- (NSString *)process {
// if numbers have No Data
if (numbers.count == 0) { return @"0"; }
// Array of array each array have two element first is number to repeat and second have number of repetation
// Example @[@1, @2] repeat number(1) TWO times so out put should be 11
// @[@[@1, @2], @[@2, @3]]
NSMutableString * output = [NSMutableString new];
for (NSArray*item in numbers) {
// Array should be with this Format
// Example @[@1, @2] repeat number(1) TWO times
// assert item have tow items only like that @[@1,@2]
NSAssert(item.count == 2,@"Array Should have Two items only");
NSNumber *numberToRepeat = item[0]; // repeat
NSNumber *repetitionCount = item[1]; //repetition Count
NSMutableString * repeatdString = [NSMutableString new];
for (NSInteger i= 0; i < [repetitionCount integerValue] ; i++) {
[repeatdString appendString:[numberToRepeat stringValue]];
}
[output appendString:repeatdString];
[output appendFormat:@" "]; // space on join with muti array
}
return output;
}
@end
#import <Foundation/Foundation.h>
#import "NumberRepeater.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
NumberRepeater *repeater1 = [[NumberRepeater alloc]
initWithNumbers: @[@[@1, @10]]];
NSLog(@"%@", [repeater1 process]);
NumberRepeater *repeater2 = [[NumberRepeater alloc]
initWithNumbers: @[@[@1, @2], @[@2, @3]]];
NSLog(@"%@", [repeater2 process]);
NumberRepeater *repeater3 = [[NumberRepeater alloc]
initWithNumbers: @[@[@10, @4], @[@34, @6], @[@92, @2]]];
NSLog(@"%@", [repeater3 process]);
}
return 0;
}