我正在嘗試使用Objective-c來解決一些基本的算法和數據結構問題,並且我發現它很難。 我需要從控制檯輸入一個整數數組,最好的方法是什麼?如何從目標c中的控制檯輸入整數的NSArray?
請幫我指點一下任何鏈接或文檔。
感謝,
我正在嘗試使用Objective-c來解決一些基本的算法和數據結構問題,並且我發現它很難。 我需要從控制檯輸入一個整數數組,最好的方法是什麼?如何從目標c中的控制檯輸入整數的NSArray?
請幫我指點一下任何鏈接或文檔。
感謝,
編輯:的計劃如下:
componentsSeparatedByString:
。因此,這裏的樂趣:
NSMutableArray *numbersAsNumbersArray = [[NSMutableArray alloc] initWithCapacity:0];
char input[1000] = {};
scanf("%s", input);
NSString *inputString = [NSString stringWithCString:input encoding:NSUTF8StringEncoding];
NSArray *numbersAsStringsArray = [inputString componentsSeparatedByString:@","];
for (NSString *aNumberAsString in numbersAsStringsArray) {
NSNumber *aNumber = @([aNumberAsString integerValue]);
[numbersAsNumbersArray addObject:aNumber];
}
NSLog(@"%@", numbersAsNumbersArray);
輸入:3,5,6,7
輸出:(3,5,6,7)
注:括號表示其中的數字存儲在NSArray
最後但並非最不重要的東西可以讀;)
NSArray Documentation及其可變子類NSMutableArray
NSString Documentation,尤其是method we use
編輯2:正如Martin R在評論中提到(謝謝! )這裏是以上代碼的簡短版本:
NSMutableArray *numbersAsNumbersArray = [[NSMutableArray alloc] initWithCapacity:0];
char input[1000] = {};
scanf("%s", input);
NSArray *numbersAsStringsArray = [[NSString stringWithCString:input encoding:NSUTF8StringEncoding] componentsSeparatedByString:@","];
numbersAsNumbersArray = [numbersAsStringsArray valueForKey:@"integerValue"];
NSLog(@"%@", numbersAsNumbersArray);
您可以將循環縮減爲'numbersAsNumbersArray = [numbersAsStringsArray valueForKey:@「integerValue」]':-) –
您絕對是對的:)您甚至可以使用'[numbersAsNumbersArray addObject:@([aNumberAsString integerValue])保存另外6個字符]';)我只是想讓它更詳細些。我會盡快添加一個簡短的版本,我更喜歡它。 – HAS
我的意思是你可以將'valueForKey:@「integerValue」'應用於* array *'numbersAsStringsArray',替換整個循環。 - 但這只是一個評論/建議。 –
等等,什麼?你的意思是你想從LLDB創建一個數組,並以某種方式影響程序的執行? – CodaFi
你在說什麼「控制檯」? – matt
可能是OS X上從標準輸入讀取的「命令行工具」。 –