String 与 NSString 的区别

Swift 的String类型与 Foundation NSString类进行了无缝桥接。在日常开发中,绝大多数应该用 String

String 与 NSString 还有以下区别

  • String类型是值类型(不再是对象类型),字符串在进行常量、变量赋值操作或在函数/方法中传递时,会进行值拷贝。 任何情况下,都会对已有字符串值创建新副本,并对该新副本进行传递或赋值操作。
  • String 可以支持字符遍历NSString 不支持
  • String 是一个结构体,性能更高;NSString 是一个 NSObject 对象,性能相对会差
  • 现在还有一些功能,用 String 不方便实现: 取字符串的字串/判断包含/正则表达式
时间: 2024-10-29 10:49:00

String 与 NSString 的区别的相关文章

Swift - String与NSString的区别,以及各自的使用场景

String是Swift里新增加的类型,它与原来的NSString可以很方便地互相转换.但在实际开发中,我们该如何选择? 1,能使用String类型就尽量使用String类型,原因如下: (1)现在Cocoa里所有的API都能接受和返回String类型,所以也没必要特地转换下. (2)Swift的String是struct,而NSString类是NSObject,所以String更符合字符串“不变”这一特性.同时,在不触及NSString特有操作和动态特性的时候,使用String的方法,在性能上

Swift的String与OC的NSString的区别

Swift的String类型是值类型.如果你创建了一个新的字符串值,那么当其进行常量.变量赋值操作或在函数/方法中传递时,会进行值拷贝. 在不同的情况下,都会对已有字符串值创建新的副本,并对该新副本进行传递或赋值. 这和OC中的NSString不同,当您在OC创建了一个NSString实例,并将其传递给一个函数/方法,或者赋给一个变量,您永远都是传递或赋值同一个NSString实例的一个引用. 除非您特别要求其进行值拷贝,否则字符串不会进行赋值新副本操作. Swift的String与OC的NSS

java中String与StringBuilder的区别

本篇文章介绍了,java中String与StringBuilder的区别. 相信大家对 String 和 StringBuffer 的区别也已经很了解了,但是估计还是会有很多同志对这两个类的工作原理有些不清楚的地方,今天我在这里重新把这个概念给大家复习一下,顺便牵出 J2SE 5.0 里面带来的一个新的字符操作的类—— StringBuilder (先别忙着扔我砖头,我还算清醒,我这里说的不是 C #, Java 也有 StringBuilder 类).那么这个 StringBuilder 和

string与stringbuffer的区别

最近在做项目到时候遇到这个问题,犯了致命的错误,提示javaVM内存溢出. 问题原因:使用string拼接字符串,导致的.此字符串的量很大. 区别:string是非变长的字符串,在每次拼接的时候相当于每次都生成一个新的string对象,所以如果是循环22次,会生成22个string对象,而我们只需要最后一个,这就对javaVM造成了很大的影响,导致内存溢出. stringbuffer是生成一次对象后,每次在这个对象上面追加内容,这样就很大的提高了性能. string与stringbuffer的转

String和StringBuider的区别和相互转换

* StringBuilder:是一个可变的字符串.字符串缓冲区类. * * String和StringBuilder的区别:  *String的内容是固定的. * StringBuilder的内容是可变的. * * 构造方法: * StringBuilder() * * 成员方法: * public int capacity():返回当前容量 * public int length():返回长度(字符数) * * 容量:理论值 * 长度:实际值 * StringBuilder和String的相

【转载】String和StringBuffer的区别,以及StringBuffer的常用方法介绍

String与StringBuffer的区别简单地说,就是一个变量和常量的关系.StringBuffer对象的内容可以修改:而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象.StringBuffer的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类.所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入.删除等操作,使用StringBuffer要更加适合一些.String:在String类中没有用

c++ string c_str() 和data()区别

看下面的英文解释: const char* c_str ( ) const;Get C string equivalentGenerates a null-terminated sequence of characters (c-string) with the same content as the string object and returns it as a pointer to an array of characters.A terminating null character i

Java杂谈之StringBuffer----兼带String,StringBuffer,StringBuilder的区别

在Java中,用到最多的当属String类型的数据了 而这一点就要涉及String , StringBuffer , StringBuilder这三大类 下面主要来比较一下String和StringBuffer的区别,因为StringBuffer和StringBuilder 太相似,所以就不拿来比较了. 提及一下,StringBuffer和StringBuilder的区别 从安全性来说,StringBuffer更安全,StringBuffer主打线程安全 从执行效率来说,StringBuilde

string与stringbuilder的区别

1.分析string与stringbuilder的区别,我们先来看下面一段代码 首先我们使用string进行字符串的拼接 class Program { static void Main(string[] args) { //StringBuilder sb = new StringBuilder(); string str = null; //创建一个计时器,计算程序运行的时间 Stopwatch sw = new Stopwatch(); //开始计时 sw.Start(); for (in