当前位置: 首页 > 编程日记 > 正文

OC基础第四讲--字符串、数组、字典、集合的常用方法

OC基础第四讲--字符串、数组、字典、集合的常用方法

字符串、数组、字典、集合有可变和不可变之分。以字符串为例,不可变字符串本身值不能改变,必须要用相应类型来接收返回值;而可变字符串调用相应地方法后,本身会改变;可变字符串是不可变字符串的子类。以下是常见的方法,其他方法可通过苹果帮助文档(API)查询使用。

1.1不可变字符串NSString

//  使用实例方法创建NSString对象

NSString *string1 = [[NSString alloc] initWithFormat:@"姓名41564564"];

NSLog(@"%@", string1);

NSString *string2 = [[NSString alloc] initWithFormat:@"机构名称: %@  成立时间: %d", @"蓝鸥", 2001];

NSLog(@"%@", string2);

//  使用类方法创建一个NNString对象

NSString *string3 = [NSString stringWithFormat:@"姓名 :%@ 年龄 :%d", @"小王", 20];

NSLog(@"%@", string3);

//  直接赋值

NSString *string4 = @"hello WORLD my baby";

NSLog(@"%@", string4);

//  获取字符串长度

NSUInteger string1Length = [string1 length];

NSLog(@"%ld", string1Length);

//  判断字符串是否有指定前缀

BOOL result1 = [string1 hasPrefix:@"姓名"];

NSLog(@"%d", result1);

//  后缀

BOOL result2 = [string2 hasSuffix:@"2011"];

NSLog(@"%d", result2);

//  查找字符串位置

NSRange range1 = [string2 rangeOfString:@"蓝鸥"];

NSLog(@"location : %ld  length : %ld", range1.location, range1.length);

//  分割字符串

NSString *subStirng1 = [string2 substringFromIndex:3];

NSLog(@"%@", subStirng1);

NSString *subString2 = [string2 substringToIndex:3];

NSLog(@"%@", subString2);

NSRange range2 = NSMakeRange(10, 2);// 建一个NSRange的结构体,注意越界

NSString *subString3 = [string2 substringWithRange:range2];

NSLog(@"%@", subString3);

//  拼接

NSString *string5 = [string2 stringByAppendingString: @"hello"];

NSLog(@"%@", string5);

//  替换

NSString *string6 = [string2 stringByReplacingOccurrencesOfString:@"蓝鸥" withString:@"海鸥"];

NSLog(@"%@", string6);

NSRange range3 = NSMakeRange(3, 3);

NSString *string7 = [string2 stringByReplacingCharactersInRange:range3 withString:@"HAHA 你中招了"];

NSLog(@"%@", string7);

//  比较

//  比较是否相同

BOOL isEqual = [string4 isEqualToString:@"hello"];

NSLog(@"%d", isEqual);

//  比较大小

NSComparisonResult result3 = [string2 compare:string4];

NSLog(@"%ld", result3);

//  大写<->小写

NSString *string8 = [string4 lowercaseString];

NSLog(@"%@", string8);

NSString *string9 = [string4 uppercaseString];

NSLog(@"%@", string9);

NSString *string10 = [string4 capitalizedString];

NSLog(@"%@", string10);

//  字符串和数值类型转换

NSInteger intStr = [@"124" integerValue];

NSLog(@"%ld", intStr);

double doubleStr = [@"1000.00432" doubleValue];

NSLog(@"%lf", doubleStr);

       1.2 可变字符串NSMutableString

//   创建可变字符串

NSMutableString *mutableStr1 = [[NSMutableString alloc] initWithFormat:@"蓝鸥科技有限公司"];

NSMutableString *mutableStr2 = [NSMutableString stringWithFormat:@"蓝鸥科技有限公司"];

NSLog(@"%@, %@", mutableStr1, mutableStr2);

//  字符串拼接(在原串的基础上)

[mutableStr1 appendString:@".txt"];

NSLog(@"%@", mutableStr1);

//  插入(在下标的后一位插入)

[mutableStr1 insertString:@"3G" atIndex:2];

NSLog(@"%@", mutableStr1);

//  删除

[mutableStr1 deleteCharactersInRange:NSMakeRange(2, 2)];

NSLog(@"%@", mutableStr1);

   2.1 不可变数组NSArray

NSArray数组类(不可变)

//  1.使用实例方法创建数组

NSArray *array1 = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", nil];//  nil不能省

NSLog(@"%@", array1); // 可以直接打印数组

//  2.使用类方法创建数组

NSArray *array2 = [NSArray arrayWithObjects:@"4", @"5", @"6", nil];

NSLog(@"%@", array2);

//  3.获取数组元素个数

NSUInteger count = [array1 count];

NSLog(@"%ld", count);

//  4.根据索引值获取对象(根据方法的返回值来确定用什么类型来接收)

NSString *p = [array1 objectAtIndex:1];

NSLog(@"%@", p);

//  5.获取对象在数组中的索引值

NSUInteger index = [array1 indexOfObject:@"3"];

NSLog(@"index : %ld", index);

1.2可变数组 NSMutableArray

//  1. 使用实例方法创建

NSMutableArray *mutableArray1 = [[NSMutableArray alloc] initWithObjects:@"aa",@"bb", @"cc", nil];

NSLog(@"%@", mutableArray1);

//  2. 使用类方法创建

NSMutableArray *mutableArray2 = [NSMutableArray arrayWithObjects:@"aaa",@"bbb", @"ccc", nil];

NSLog(@"%@", mutableArray2);

//  3. 添加元素

[mutableArray1 addObject:@"dd"];

NSLog(@"%@", mutableArray1);

//  4. 插入元素

[mutableArray1 insertObject:@"haha" atIndex:1];

NSLog(@"%@", mutableArray1);

//  5. 删除元素(通常根据索引或者对象值)

[mutableArray1 removeObject:@"haha"];

[mutableArray1 removeObjectAtIndex:1];

NSLog(@"%@", mutableArray1);

//  6. 替换元素

[mutableArray1 replaceObjectAtIndex:2 withObject:@"DD"];

NSLog(@"%@", mutableArray1);

//  7. 根据索引值交换指定位置的两个元素

[mutableArray1 exchangeObjectAtIndex:1 withObjectAtIndex:2];

NSLog(@"%@", mutableArray1);

//  8. 很据对象交换两个元素的位置(先找到对象的索引值)

[mutableArray1 exchangeObjectAtIndex: [mutableArray1 indexOfObject:@"cc"] withObjectAtIndex:[mutableArray1 indexOfObject:@"DD"]];

NSLog(@"%@", mutableArray1);

//  9. 遍历数组对象

使用for循环遍历

for (int i = 0; i < [mutableArray1 count]; i ++) {

NSString *str = [mutableArray1 objectAtIndex:i];

NSLog(@"遍历结果:%@", str);

}

使用for in快速遍历

for (NSString *str in mutableArray1) {

NSLog(@"快速遍历:%@", str);

}

数组中使用枚举器(for in 快速遍历的实质)

NSArray *arr = [NSArray arrayWithObjects:@"abc", @"hdf", @"hshah", nil];

NSEnumerator *enumerator2 = [arr objectEnumerator];

NSString *str2 = nil;

while (str2 = [enumerator2 nextObject]) {

NSLog(@"str2: %@", str2);

}

3.NSNumber (基本数据类型不能放在数组中,解决这个问题,可以把数字封装成对象)

//  1.创建一个数组对象

NSMutableArray *array = [NSMutableArrayarrayWithObjects:@"1", @"2", nil];

//  2.用NSNumber对Integer进行包装

NSNumber *intNumber = [NSNumber numberWithInteger:3];

//  3.将包装后烦人NSNumber对象放到数组中

[array addObject:intNumber];

NSLog(@"%@", array);

//  4.根据下标取出对象,用NSNumber类型进行接收

NSNumber *a = [array objectAtIndex:2];

NSLog(@"%@", a);

//  5.把NSNunber转成Integer类型

NSInteger integerA = [a integerValue];

NSLog(@"%ld", integerA);

4.1 NSDictionary 不可变字典

//  key通过哈希算法算出一个数作为一个索引下标把值存到相应的的位置在内存中是散列结构,即无序

//  使用实例方法创建(键值对的形式) 键和值都必须是对象

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", @"v3", @"k3", @"v5", @"k5", @"v4", @"k4", @"value6", @"key6", @"value7", @"ke7", nil];

NSLog(@"%@", dictionary);

//  使用类方法创建

NSDictionary *dictionary2 = [NSDictionary dictionaryWithObjectsAndKeys:@"v1", @"k1", @"v2", @"k2", nil];

NSLog(@"%@", dictionary2);

NSDictionary *dictionary3 = [NSDictionary dictionaryWithObject:@"value" forKey:@"key"];

NSLog(@"%@", dictionary3);

NSArray *keyArray = [NSArray arrayWithObjects:@"k1", @"k2", @"k3", nil]; //  存放键的数组

NSArray *valueArray = [NSArray arrayWithObjects:@"v1", @"v2", @"v3", nil];//  存放值的数组

NSDictionary *dictionary4 = [NSDictionary dictionaryWithObjects: keyArray forKeys:valueArray];

NSLog(@"%@", dictionary4);

// 创建空字典

NSDictionary *dic = [NSDictionary dictionary];

//  使用一个文件创建字典对象 新建文件步骤:command + N -> Resource -> Property List

NSDictionary *dictionary5 = [NSDictionary dictionaryWithContentsOfFile:@"/Users/lanou3g/Desktop/OC/lesson5-20140425/lesson5-20140425/dictionary.plist"];

NSLog(@"%@", dictionary5);

//  返回字典中键值对的个数

NSLog(@"%ld", [dictionary5 count]);

//  字典取值 获取指定key对应的value

NSString *value1 = [dictionary5 objectForKey:@"ly"];

NSLog(@"%@", value1);

//  返回所有的key数组

NSArray *allKeysArray = [dictionary5 allKeys];

NSLog(@"%@", allKeysArray);

//  返回所有的value数组

NSArray *allValuesArray = [dictionary5 allValues];

NSLog(@"%@", allValuesArray);

//  使用key枚举器(获取所有key)

NSEnumerator *enumerator = [dictionary5 keyEnumerator];

NSString *str = nil;

while (str = [enumerator nextObject]) {

NSLog(@"%@", str);

}

 4.2创建可变字典 NSMutableDictionary

NSMutableDictionary *dic1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v1", @"k1", @"v2", @"k2", nil];

NSMutableDictionary *dic2 = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"v3", @"k3", @"v4", @"k4", @"v5", @"k5", nil];

//  用于整理对象的拼接

[dic1 addEntriesFromDictionary:dic2];

NSLog(@"%@", dic1);

//  删除字典中某个对象

[dic1 removeObjectForKey:@"k1"];

NSLog(@"%@", dic1);

//  删除字典全部对象

[dic1 removeAllObjects];

NSLog(@"%@", dic1);

//  设置字典

[dic1 setDictionary:dic2];

NSLog(@"%@", dic1);

 5.1NSSet集合对象 容器类

//  1. 使用类方法创建对象

NSSet *set1 = [NSSet set];  //  创建一个空的集合对象

NSSet *set2 = [NSSet setWithObject:@"abc"];

NSSet *set3 = [NSSet setWithObjects:@"abc", @"aaa", @"bbb", nil];

NSLog(@"%@", set3);

NSArray *array = [NSArray arrayWithObjects:@"a",@"b", @"c", nil];

NSSet *set4 = [NSSet setWithArray:array];   //  使用数组创建

NSLog(@"%@", set4);

NSSet *set5 = [NSSet setWithSet:set4];      //  使用集合创建

NSLog(@"%@", set5);

//  2.使用实例方法创建

NSSet *set6 = [[NSSet alloc] init];

NSLog(@"%@", set6);

NSSet *set7 = [[NSSet alloc] initWithObjects:@"hello", @"hhaa", @"bbjdh", nil];

NSLog(@"%@", set7);

NSSet *set8 = [[NSSet alloc] initWithArray:array];

NSLog(@"%@", set8);

NSSet *set9 = [[NSSet alloc] initWithSet:set7];

NSLog(@"%@", set9);

//  3.返回几个元素个数

NSLog(@"%ld", [set7 count]);

//  4.枚举器访问集合元素

NSEnumerator *enumerator = [set7 objectEnumerator];

NSString *str = nil;

while (str = [enumerator nextObject]) {

NSLog(@"%@", str);

}

//  5.判断两个几个是否有交集

BOOL ifhasIntersection = [set2 intersectsSet:set3];

NSLog(@"%d", ifhasIntersection);

//  6.判断两个集合是否相等

NSLog(@"%d", [set2 isEqualToSet:set3]);

//  7.判断当前集合是否是子集

NSLog(@"%d", [set2 isSubsetOfSet:set3]);

5.2可变集合 NSMutableSet

//  创建指定元素个数的一个集合对象

NSMutableSet *mutableSet = [NSMutableSet setWithCapacity:4];

[mutableSet addObject:@"aaa"];

NSLog(@"%@", mutableSet);

//  类方法创建可变集合

NSMutableSet *mutableSet1 = [NSMutableSet setWithObjects:@"aaa", @"bbb", @"ccc", nil];

NSMutableSet *mutableSet2 = [NSMutableSet setWithObject:@"aaa"];

//  添加一个对象到集合

[mutableSet2 addObject:@"ddd"];

NSLog(@"%@", mutableSet2);

//  从集合中删除一个对象

[mutableSet2 removeObject:@"ddd"];

NSLog(@"%@", mutableSet2);

//  把数组对象添加到集合对象中

NSArray *arr = [NSArray arrayWithObjects:@"eee", @"fff", nil];

[mutableSet1 addObjectsFromArray:arr];

NSLog(@"%@", mutableSet1);

//  得到两个集合的交集 注意intersectSet和intersectsSet的区别,后者是判断是否有交集的方法, 返回的是bool值

[mutableSet1 intersectSet:mutableSet2];

NSLog(@"%@", mutableSet1);

//  从一个集合中减去另一个集合

[mutableSet1 minusSet:mutableSet2];

NSLog(@"%@", mutableSet1);

//  从一个元素中删除所有元素

[mutableSet2 removeAllObjects];

NSLog(@"%@", mutableSet2);

//  取两个集合的并集

[mutableSet1 unionSet:mutableSet2];

NSLog(@"%@", mutableSet1);

NSLog(@"%@", mutableSet1);

//  设置给集合赋值

[mutableSet1 setSet:mutableSet2];

NSLog(@"%@", mutableSet1);

关于数组排序

NSArray *array = [NSArrayarrayWithObjects:@"12", @"454", @"7878", @"77122", @"555", @"9", nil];

NSLog(@"排序前:%@", array);

//  这样排序是按照字符串大小来排序的不是数值排序

array = [array sortedArrayUsingSelector:@selector(compare:)];

NSLog(@"排序后:%@", array);

//  进行数值排序需要用以下的方法

array = [array sortedArrayUsingFunction:intSort context:NULL];

NSLog(@"排序后:%@", array);

以下是intSort 的方法实现:

NSInteger intSort(id num1, id num2, void *context)

{

int v1 = [num1 intValue];

int v2 = [num2 intValue];

if (v1 < v2)

returnNSOrderedAscending;

else if (v1 > v2)

returnNSOrderedDescending;

else

returnNSOrderedSame;

}

关于字典与数组

/// 字典里可以存数组,数组可以存字典

NSArray *arr = [NSArray arrayWithObjects: @"1", @"2", @"3", nil];

//  把数组arr放在字典dic里

NSDictionary *dic = [NSDictionary dictionaryWithObject:arr forKey:@"array"];

NSLog(@"%@", dic);

//  把字典dic和数组arr 放在数组arr2里

NSArray *arr2 = [NSArray arrayWithObjects:arr, dic, nil];

NSLog(@"%@", arr2);

posted on 2014-04-26 20:31 和果子 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/liuyu521/p/3692029.html

相关文章:

分类、检测、分割任务均有SOTA表现,ACNet有多强?

&#xff08;图片付费下载自视觉中国&#xff09;作者 | 路一直都在来源 | 知乎专栏Abstract本文提出了一种新的自适应连接神经网络(ACNet)&#xff0c;从两个方面对传统的卷积神经网络(CNNs)进行了改进。首先&#xff0c;ACNet通过自适应地确定特征节点之间的连接状态&#xf…

CUDA Samples: approximate prior vbox layer

以下CUDA sample是分别用C和CUDA实现的类似prior vbox layer的操作&#xff0c;并对其中使用到的CUDA函数进行了解说&#xff0c;各个文件内容如下&#xff1a;common.hpp:#ifndef FBC_CUDA_TEST_COMMON_HPP_ #define FBC_CUDA_TEST_COMMON_HPP_#include <typeinfo> #inc…

如何成为一名成功的 iOS 程序员?

前言&#xff1a; 编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域。你必须充满激情&#xff0c;并且持之以恒地不断汲取更多有关编程的知识。只是对编程感兴趣还不足以功成名就——众所周知&#xff0c;我们工作起来像疯子。 编程是一个没有极限的职业&#xff0c;所以要成为一…

C#之委托与事件

委托与事件废话一堆&#xff1a;网上关于委托、事件的文章有很多&#xff0c;一千个哈姆雷特就有一千个莎士比亚&#xff0c;以下内容均是本人个人见解。1. 委托1.1 委托的使用这一小章来学习一下怎么简单的使用委托&#xff0c;了解一些基本的知识。这里先看一下其他所要用到的…

24式加速你的Python

作者 | 梁云1991来源 Python与算法之美一、分析代码运行时间第1式&#xff0c;测算代码运行时间平凡方法快捷方法&#xff08;jupyter环境&#xff09;第2式&#xff0c;测算代码多次运行平均时间平凡方法快捷方法&#xff08;jupyter环境&#xff09;第3式&#xff0c;按调用函…

pip、NumPy、Matplotlib在Windows上的安装过程

Windows上Python 3.6.2 64位的安装步骤&#xff1a;1. 从 https://www.python.org/downloads/windows/ 下载Windows x86-64 executable installer(即python-3.6.2-amd64.exe)&#xff1b;2. 直接以管理员身份运行安装&#xff0c;勾选添加到环境变量、pip等即可。可以同时在Wi…

分享:个人是怎么学习新知识的

为什么80%的码农都做不了架构师&#xff1f;>>> 挺多童鞋问我是怎么学习新知识的&#xff0c;干脆写篇文章总结一下&#xff0c;希望对大家有所帮助。对照书、技术博客、极客时间等学习的方式我就不说了。 一、早期 在15年及更早&#xff0c;由于知识储备少&#x…

easyui的datagrid

datagrid数据的绑定方式&#xff1a; 1&#xff09;data 后跟数据行的json串 2&#xff09;url 后跟{"total":,"rows":,"foot":},其中total代码返回总行数&#xff0c;rows为数据行json串 .NET MVC&#xff0c;controll控制类方法中获取datagrid…

线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现

回归&#xff1a;在这类任务中&#xff0c;计算机程序需要对给定输入预测数值。为了解决这个任务&#xff0c;学习算法需要输出函数f:Rn→R。除了返回结果的形式不一样外&#xff0c;这类问题和分类问题是很像的。这类任务的一个示例是预测投保人的索赔金额(用于设置保险费)&am…

4种最常问的编码算法面试问题,你会吗?

导语&#xff1a;面试是测查和评价人员能力素质的一种考试活动。最常问的编码算法面试问题你知道多少呢&#xff1f;作者 | Rahul Sabnis译者 | 苏本如&#xff0c;编辑 | 刘静来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;在许多采访中&#xff0c;我经常被要求…

[小梅的体验课堂]Microsoft edge canary mac版本体验

简介 华硕微软越来越没有自己的JC了&#xff0c;不经在windows里面加了wsl而且还废弃了自己的老edge浏览器&#xff0c;重新基于chromium内核开发了新的edge浏览器了&#xff0c;不管怎么说mac上又多了一款新的浏览器&#xff0c;对于一个爱好新鲜的我来说那就简单安装体验下 下…

SQL Server用户自定义函数

用户自定义函数不能用于执行一系列改变数据库状态的操作&#xff0c;但它可以像系统 函数一样在查询或存储过程等的程序段中使用&#xff0c;也可以像存储过程一样通过EXECUTE 命令来执行。在 SQL Server 中根据函数返回值形式的不同将用户自 定义函数分为三种类型&#xff1a;…

C++11中std::initializer_list的使用

initializer_list是一种标准库类型&#xff0c;用于表示某种特定类型的值的数组。和vector一样&#xff0c;initializer_list也是一种模板类型&#xff0c;定义initializer_list对象时&#xff0c;必须说明列表中所含元素的类型。和vector不一样的是&#xff0c;initializer_li…

WijmoJS 2019V1正式发布:全新的在线 Demo 系统,助您快速上手,开发无忧

2019独角兽企业重金招聘Python工程师标准>>> 下载WijmoJS 2019 v1 WijmoJS是为企业应用程序开发而推出的一系列包含HTML5和JavaScript的开发控件。其中包含了金融图表、FlexSheet、先进的JavaScript控件&#xff08;Wijmo 5&#xff09;和经典的jQuery小部件&#x…

最后3天,BDTC 2019早鸟票即将售罄,超强阵容及议题抢先曝光!

大会官网&#xff1a;https://t.csdnimg.cn/U1wA2019 年12月5-7 日&#xff0c;由中国计算机学会主办&#xff0c;CCF 大数据专家委员会承办&#xff0c;CSDN、中科天玑数据科技股份有限公司协办的 2019 中国大数据技术大会&#xff0c;将于北京长城饭店隆重举行。届时&#xf…

php_mongo.dll下载(php操作mongoDB需要)

php_mongo.dll下载&#xff08;php操作mongoDB需要&#xff09;如果PHP连接操作mongoDB就必须要加入此扩展&#xff1a;php_mongo.dll&#xff0c;放到你对应php的扩展目录在你的php.ini中加入&#xff1a;extensionphp_mongo.dll重启apache&#xff0c;在phpinfo()中查看是否有…

十大机器智能新型芯片:华为抢占一席,Google占比最多

&#xff08;图片付费下载自视觉中国&#xff09;整理 | 胡巍巍来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;当年&#xff0c;阿基米德爷爷说出“给我一个支点&#xff0c;我就能撬动地球”这句话时&#xff0c;估计没少遭受嘲讽。然而后来的我们&#xff0c;都…

C++/C++11中头文件numeric的使用

<numeric>是C标准程序库中的一个头文件&#xff0c;定义了C STL标准中的基础性的数值算法(均为函数模板)&#xff1a; (1)、accumulate: 以init为初值&#xff0c;对迭代器给出的值序列做累加&#xff0c;返回累加结果值&#xff0c;值类型必须支持””算符。它还有一个…

Spring基础16——使用FactoryBean来创建

1.配置bean的方式 配置bean有三种方式&#xff1a;通过全类名&#xff08;class反射&#xff09;、通过工厂方法&#xff08;静态工厂&实例工厂&#xff09;、通过FactoryBean。前面我们已经一起学习过全类名方式和工厂方法方式&#xff0c;下面通过这篇文章来学习一下Fact…

查看进程 端口

2019独角兽企业重金招聘Python工程师标准>>> 一 进程 ps -ef 1.UID 用户ID2.PID 进程ID3.PPID 父进程ID4.C CPU占用率5.STIME 开始时间6.TTY 开始此进程的TTY7.TIME 此进程运行的总时间8.CMD 命令名 二端口 netstat Linux下如果我…

深度学习中的欠拟合和过拟合简介

通常情况下&#xff0c;当我们训练机器学习模型时&#xff0c;我们可以使用某个训练集&#xff0c;在训练集上计算一些被称为训练误差(training error)的度量误差&#xff0c;目标是降低训练误差。机器学习和优化不同的地方在于&#xff0c;我们也希望泛化误差(generalization …

今日头条首次改进DQN网络,解决推荐中的在线广告投放问题

&#xff08;图片付费下载自视觉中国&#xff09;作者 | 深度传送门来源 | 深度传送门&#xff08;ID:gh_5faae7b50fc5&#xff09;【导读】本文主要介绍今日头条推出的强化学习应用在推荐的最新论文[1]&#xff0c;首次改进DQN网络解决推荐中的在线广告投放问题。背景介绍随着…

RPA实施过程中可能会遇到的14个坑

RPA的实施过程并非如我们所想的那样&#xff0c;总是一帆风顺。碰坑&#xff0c;在所难免。但也不必为此过于惊慌&#xff0c;因为&#xff0c;我们已经帮你把RPA实施之路上的坑找了出来。RPA实施过程中&#xff0c;将会遇到哪些坑&#xff1f; 【不看全文大纲版】●组织层面&a…

Android问题汇总

2019独角兽企业重金招聘Python工程师标准>>> 1. Only the original thread that created a view hierarchy can touch its views 在初始化activity是需要下载图片&#xff0c;所以重新开启了一个线程&#xff0c;下载图片更新ui&#xff0c;此时就出现了上面的错误。…

深度学习中的验证集和超参数简介

大多数机器学习算法都有超参数&#xff0c;可以设置来控制算法行为。超参数的值不是通过学习算法本身学习出来的(尽管我们可以设计一个嵌套的学习过程&#xff0c;一个学习算法为另一个学习算法学出最优超参数)。在多项式回归示例中&#xff0c;有一个超参数&#xff1a;多项式…

自定义View合辑(8)-跳跃的小球(贝塞尔曲线)

为了加强对自定义 View 的认知以及开发能力&#xff0c;我计划这段时间陆续来完成几个难度从易到难的自定义 View&#xff0c;并简单的写几篇博客来进行介绍&#xff0c;所有的代码也都会开源&#xff0c;也希望读者能给个 star 哈 GitHub 地址&#xff1a;github.com/leavesC/…

分析Booking的150种机器学习模型,我总结了六条成功经验

&#xff08;图片付费下载自视觉中国&#xff09;作者 | Adrian Colyer译者 | Monanfei出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;本文是一篇有趣的论文&#xff08;150 successful machine learning models: 6 lessons learned at Booking.com Bernadi et al.,…

Android官方提供的支持不同屏幕大小的全部方法

2019独角兽企业重金招聘Python工程师标准>>> 本文将告诉你如何让你的应用程序支持各种不同屏幕大小&#xff0c;主要通过以下几种办法&#xff1a; 让你的布局能充分的自适应屏幕根据屏幕的配置来加载合适的UI布局确保正确的布局应用在正确的设备屏幕上提供可以根据…

C++/C++11中头文件iterator的使用

<iterator>是C标准程序库中的一个头文件&#xff0c;定义了C STL标准中的一些迭代器模板类&#xff0c;这些类都是以std::iterator为基类派生出来的。迭代器提供对集合(容器)元素的操作能力。迭代器提供的基本操作就是访问和遍历。迭代器模拟了C中的指针&#xff0c;可以…

从多媒体技术演进看AI技术

&#xff08;图片付费下载自视觉中国&#xff09;文 / LiveVideoStack主编 包研在8月的LiveVideoStackCon2019北京开场致辞中&#xff0c;我分享了一组数据——把2019年和2017年两场LiveVideoStackCon上的AI相关的话题做了统计&#xff0c;这是数字从9.3%增长到31%&#xff0c;…