ios数组怎么写
1. ios 类似数组排序的方法怎么写
IOS几种简单有效的数组排序方法//第一种,利用数组的sortedArrayUsingComparator调用 NSComparator ,obj1和obj2指的数组中的对象NSComparator cmptr = ^(id obj1, id obj2){ if ([obj1 integerValue] > [obj2 integerValue]) { return (NSComparisonResult)NSOrderedDescending; } if ([obj1 integerValue] < [obj2 integerValue]) { return (NSComparisonResult)NSOrderedAscending; } return (NSComparisonResult)NSOrderedSame;};NSArray *sortArray = [[NSArray alloc] initWithObjects:@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"20",@"28",@"",nil]; //排序前 NSMutableString *outputBefore = [[NSMutableString alloc] init]; for(NSString *str in sortArray){ [outputBefore appendFormat:@"]; } NSLog(@"排序前:%@",outputBefore); [outputBefore release]; //第一种排序 NSArray *array = [sortArray sortedArrayUsingComparator:cmptr]; NSMutableString *outputAfter = [[NSMutableString alloc] init]; for(NSString *str in array){ [outputAfter appendFormat:@"]; } NSLog(@"排序后:%@",outputAfter); [outputAfter release];第二种 排序方法 利用sortedArrayUsingFunction 调用 对应方法customSort,这个方法中的obj1和obj2分别是指数组中的对象。
NSInteger customSort(id obj1, id obj2,void* context){ if ([obj1 integerValue] > [obj2 integerValue]) { return (NSComparisonResult)NSOrderedDescending; } if ([obj1 integerValue] < [obj2 integerValue]) { return (NSComparisonResult)NSOrderedAscending; } return (NSComparisonResult)NSOrderedSame;} NSArray *sortArray = [[NSArray alloc] initWithObjects:@"1",@"3",@"4",@"7",@"8",@"2",@"6",@"5",@"13",@"15",@"12",@"20",@"28",@"",nil]; //排序前 NSMutableString *outputBefore = [[NSMutableString alloc] init]; for(NSString *str in sortArray){ [outputBefore appendFormat:@"]; } NSLog(@"排序前:%@",outputBefore); [outputBefore release]; NSArray *array = [sortArray sortedArrayUsingFunction:customSort context:nil]; NSMutableString *outputAfter = [[NSMutableString alloc] init]; for(NSString *str in array){ [outputAfter appendFormat:@"]; } NSLog(@"排序后:%@",outputAfter); [outputAfter release];第三种 利用sortUsingDescriptors调用NSSortDescriptor NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"price" ascending:NO];//其中,price为数组中的对象的属性,这个针对数组中存放对象比较更简洁方便 NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:&sortDescriptor count:1]; [_totalInfoArray sortUsingDescriptors:sortDescriptors]; [_airListView refreshTable:_totalInfoArray]; [sortDescriptor release]; [sortDescriptors release];。
2. ios 怎么往数组的数组中添加数据
你那样定义后,不能直接使用,因为未对当前数组变量进行实例化,也就没有进行内存分配这里给你推荐两种方法。
1、初始化时设置他的数组大小string[] myarr = new string[2];myarr[0] = "1";myarr[1]="第二个值";2、初始化时设置他的数组大小并赋值string[] myarr = new string[]{"1","2"};3、可以动态改变数组大小的数组List listArr = new List();listArr.add("添加的值");listArr.add("再添加一个值");listArr.add("OK");listArr.RemoveAt(1);//删除索引1的项。.//该方法操作数组更加灵活。
如果不需要动态操作数组的话,可以不使用该方法。string[] myarr = listArr.ToArray();//将List类型转成string[]类型的数组。
3. ios中怎样把数组加到数组里面
// NSMutableArray *mutArr = [NSMutableArray array];
// [mutArr addObject:dict];
//
// NSMutableDictionary *dictbbb =[[NSMutableDictionary alloc]init];
// [dictbbb setObject:mutArr forKey:@"person"];
// NSLog(@"dictbbb is %@",dictbbb);
//
//
// NSData *dictData1 = [NSJSONSerialization dataWithJSONObject:dictbbb options:NSJSONWritingPrettyPrinted error:nil];
// NSString *jsonString1= [[NSString alloc]initWithData:dictData1 encoding:NSUTF8StringEncoding];
//
// NSLog(@"jsonbbbb str is %@",jsonString1);
//
//
//
// NSData* xmlData = [jsonString1 dataUsingEncoding:NSUTF8StringEncoding];
// NSMutableArray *mutDict1 = [NSJSONSerialization JSONObjectWithData:xmlData options:(NSJSONReadingMutableLeaves) error:nil];
//
// NSLog(@"mutdicr1 是%@",mutDict1);
NSDictionary *dictaaaaa = [mutDict1 objectForKey:@"name" ];
// NSString *name2 = [perDict objectForKey:@"name"];
// NSLog(@"姓名是:%@",name2);
4. 怎么在数组后面添加数组 ios
怎么在数组后面添加数组 ios cpystr(pa,pb); printf("string a=%s\nstring b=%s\n",pa,pb);}在本例中,程序完成了两项工作:一是把pss指向的源字符串复制到pds所指向的目标字符串中,二是判断所复制的字符是否为`\0',若是则表明源字符串结束,不再循环。
否则,pds和pss都加1,指向下一字符。在主函数中,以指针变量pa,pb为实参,分别取得确定值后调用cprstr函数。
由于采用的指针变量pa和pss,pb和pds均指向同一字符串,因此在主函数和cprstr函数中均可使用这些字符串。也可以把cprstr函数简化为以下形式: cprstr(char *pss,char*pds) {while((*pds++=*pss++)!=`\0');} 即把指针的移动和7a64e78988e69d8331333361313966赋值合并在一个语句中。
进一步分析还可发现`\0'的ASCⅡ码为0,对于while语句只看表达式的值为非0就循环,为0则结束循环,因此也可省去“!=`\0'”这一判断部分,而写为以下形式: cprstr (char *pss,char *pds){while (*pdss++=*pss++);}表达式的意义可解释为,源字符向目标字符赋值,移动指针,若所赋值为非0则循环,否则结束循环。这样使程序更加简洁。
【例10.30】简化后的程序如下所示。
5. ios 怎么获得数组中的数组元素
System.out.println(“我是java的打印”);
在Object-C 则如此:
打印一个NSString:
NSString str = @”我是OBject-C数据”;
NSLog(@“打印数据了% @”,str);
NSLog的格式如下所示:
%@ 对象
%d, %i 整数
%u 无符整形
%f 浮点/双字
%x, %X 二进制整数
%o 八进制整数
%zu size_t%p 指针
%e 浮点/双字 (科学计算)
%g 浮点/双字
%s C 字符串
%.*s Pascal字符串
%c 字符
%C unicha
r%lld 64位长整数
(long long)%llu 无符64位长整数
%Lf 64位双字
<3>;下面说说数组,很常用的数组
//初始化不可变数组,切记初始化后不可以改变的数组
NSArray mArray =[[NSArray alloc] initWithObjects:
@"雨松MOMO",
@"15810463139",
@"xuanyusong@gmail.com",
self,nil];
//可以改变的数组
NSMutableArray nsma = mArray ;//这里我们直接的赋值;
下面注意的是对数组的遍历,如同java里面一样有一种简单的遍历数组的方法:
遍历方法一:
For(int i = 0; i < nsma.count; i++ ){
NSString *temp = [nsma objectAtIndex:i];//这里便是拿出来没一个数据
}
遍历方法二:
//objective-c 2.0 引入的快速枚举法 不仅速度快 并且安全性高,推荐使用这种方式来遍历
for (NSString * str in nsma) {
NSLog(@"固定数组 %@", str);
}
NSMutableArray是一个可以改变数据的数组,提供了两种方法:
addobject方法用于向数组中添加元素
//添加数组
- (void)addArray: (NSObject *) str
{
[mListArray addObject:str];
}
removeObject方法用于删除元素
//删除数组
-(void) deleteArray:(NSString *)str
{
[mListArray removeObject:str];
}
replaceObjectAtIndex 方法可以修改数组中的某一个元素
//修改数组中的元素
-(void)changeArray:(int)ID:(NSObject *) str
{
[mListArray replaceObjectAtIndex:ID withObject:str];
}
insertObject方法用于向数组中插入一个元素
//向数组中插入一个元素
-(void)insertArray:(int)ID:(NSObject *) str
{
[mListArray insertObject:str atIndex:ID];
}
6. iOS中的数组底层是怎么实现的
如果必须要用FileOutputStream的话那是没有办法的,因为FileOutputStream是属于比较底层的流,所有的构造方法都与文件关联。
但是如果要写入blob中的话使用FileOutputStream却是有点儿多余的,因为像你那样写入文件读出来之后同样还是byte数组,所以可以直接使用OutputStream的write(byte[] b, int off, int len)方法,OFF开始标记一般设为0,len偏移量一般设为byte的length大小。
php数组怎么写
1. php数组 关联数组 怎么写
不同的情况有不同的写法
介绍几个操作PHP关联数组的技巧。
1、添加数组元素
PHP是一种弱类型语言,这意味着你不需要显示声明一个数组及其大小,相反,你可以同时声明并填充数组。
$capitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
); 额外的数组元素可以象下面这样追加:
$capitals['Arkansas'] = 'Little Rock'; 如果你正在处理数字索引数组,你可能想使用显示命名的函数前置和追加元素,如array_push()和array_unshift()函数,但这些函数不能操作关联数组。2、删除数组元素
如果要从数组中删除一个元素,请使用unset()函数,如:
unset($capitals['California']); 使用数字索引数组时,删除数组元素的办法更多,更灵活,可以使用array_shift()和array_pop()函数分别从数组的开头和末尾删除一个元素。
3、交换键和值
假设你想创建一个名叫$states的新数组,使用州府作为索引,使用州名作为关联值,使用array_flip()函数很容易完成这个任务。
复制代码 代码如下:
$capitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
);
$states = array_flip($capitals);
// $states = array(
// 'Montgomery' => string 'Alabama',
// 'Juneau' => string 'Alaska',
// 'Phoenix' => string 'Arizona'
// );
4、合并数组
假设前面的数组由一个基于Web的“FlashCard”服务使用,你想提供一种方法测试学生对美国各州首府的掌握情况,你可以使用array_merge()函数合并包含州和首府的数组。
复制代码 代码如下:
$stateCapitals = array(
'Alabama' => 'Montgomery',
'Alaska' => 'Juneau',
'Arizona' => 'Phoenix'
);
$countryCapitals = array (
'Australia' => 'Canberra',
'Austria' => 'Vienna',
'Algeria' => 'Algiers'
);
$capitals = array_merge($stateCapitals, $countryCapitals);
5、编辑数组值
假设在数组中的数据包含大小写错误,在插入到数据库之前,你想纠正这些错误,你可以使用array_map()函数给每个数组元素应用一个回调。
复制代码 代码如下:
function capitalize($element)
{
$element = strtolower($element);
return ucwords($element);
}
$capitals = array(
'Alabama' => 'montGoMEry',
'Alaska' => 'Juneau',
'Arizona' => 'phoeniX'
);
$capitals = array_map("capitalize", $capitals);
2. 如何将数组写入php文件中
新建php项目test,在该项目下创建文件1.php。
目的:将数组AB,写入文件中,如图:在此项目中,共有以下几个公共知识点,如图:第一种方式:用var_export 直接将数组以完整数组的形式存储到文件中;运行程序后,成功则显示如图:第二种方式:用print_r 将数组打印到txt文件中;运行程序后,成功则显示如图:第三种方式:使用 serialize 将数组序列化,存储在文件中;调用时,再使用 unserialize 还原;运行后,成功则可看到结果,显示如图:。
3. php数组的用法
首先你这种写法真的很另类,现在PHP比较通用花括号写法(1)对于弱语言PHP来说,不需要像严谨语言一样初始化,在使用的时候自动初始化了。
所以声明了数组之后就可以使用了。而且有些时候都不需要声明,比如直接写 $i = 1.25;如果在一个严谨的语言中是要报错的,PHP可以这样使用。
(2)数组默认索引的是从0开始然后自加1。count($arr)是数组元素个数。
假设n是当前数组元素个数,那么$arr[n-1]就是索引最大的一个元素。添加$arr[n]就相当于在数组后面增加一个元素。
其实可以写$arr[] = $ss,效果是一样的。(3)算法思路问题,意思是一个自然数能被比它小的素数整除,则它不是素数。
(4)程序没有错。.。
指针数组怎么写
1. C语言 指向指针数组的指针怎么写
#include <stdio.h>
int main(int argc, char *argv[])
{
char *field_pointer[18] = {"1", "2", "3", "4", "5"};
char **p = field_pointer;//二级指针
//二级指针p的两种用法
printf("%s %s %s\n", field_pointer[2], p[2], *(p+2));
return 0;
}
2. 如何用指针求数组和
这个问题很有趣,要理解有个前提,你至少要思考过数组怎样在内存中存储,并且一个字节一个字节地画过。
无论数组指针,还是指针数组,这样的名词性短语重心都在后面,所以数组指针是个指针,指针数组是个数组。数组指针的实例:int(*p)[5]; 可以这样解释其定义:p是个指针,指向一个数组,数组有5个元素,每个元素是一个int型整数。
在内存中,p就是一个占4字节的变量,变量的值是个地址,在内存的那个地址处,有4*5=20个连续字节被认为是一个int[5]数组。做一次p++,p的值增加20。
这种特性和二维数组是有相似之处的,比如int k[3][5],事实上,可以这样赋值: p=k。 如果要在形参里使用,可以将变量名去除,就抽象出数据类型。
典型的函数声明可以这样写:void f( int(*)[5] ); 典型的实参调用可以这样写:f(k); 这里的k是int k[3][5]二维数组。我印象里要把二维数组名作实参使用,形参只能写成数组指针,形参直接写成二维数组是不行的,void f( int [3][5]);这样声明会报错。
也不能写void f( int** ); 因为int**和intint(*)[5]是不同的,前者做++只增4,后者增20。 指针数组的实例:int*p[5]; 这样解释:p是个数组,数组有5个元素,每个元素是一个指针,指向一个int型整数。
这里p是数组名,是指针常量而不是变量,不可以对p赋值,这和上面比,是本质区别。从内存占用情况来看,他和int p[5]没啥区别,每个元素都占4字节。
所以使用时可以参考整型数组,只要把int替换成int*就行了。比如声明时可用void f( int*[5] );,也可用void f( int** );。
调用实参时,就把实际的指针数组名传入即可,比如f(t);,这里t是 int*t[5]。 这点篇幅其实是说不完的,书里都用一整章来讲呢。
还是开头说的,研究一下数组及指针在内存里怎样存储,一个字节一个字节画一画,有好处。
3. 指针数组的数组名表示什么
指针数组的数组名就是该指针数组首元素的地址的别名。
比如,一个人可以叫王小二,也有叫它小二,或者小王,其实都是指同一个人。
指针数组就比如这个例子:int *p[10] 那么p等价于&p[0]
因为指针里面存储的是地址(十六进制数),所以&p[0]这里面存放着一个int变量的地址。
是不是觉得用地址来存放地址有点想不通,下面举一个简单的例子:
比如 int *p[10]; 可以把&p[0]看成一张记录着地址的纸,那么根据这张纸的地址找到某个仓库,在仓库里面又放着记录着一个int变量地址的纸,又根据这个地址找到了存放int变量的仓库,在这个仓库里面放着int的值,其实就想寻宝一样,根据一关一关的线索找到指定的宝藏。
转载请注明出处育才学习网 » javascript中数组怎么写
育才学习网