rangeofstring

时间:2023-08-24 12:46:04编辑:奇事君

1,NSString和SwiftString的区别和使用场景

String是Swift里新增加的类型,它与原来的NSString可以很方便地互相转换。但在实际开发中,我们该如何选择?

1,能使用String类型就尽量使用String类型,原因如下:

(1)现在Cocoa里所有的API都能接受和返回String类型,所以也没必要特地转换下。

(2)Swift的String是struct,而NSString类是NSObject,所以String更符合字符串“不变”这一特性。同时,在不触及NSString特有操作和动态特性的时候,使用String的方法,在性能上也会有所提升。

(3)由于String实现了像CollectionType这样的接口,所以有些Swift的语法特性只有String才能使用,而NSString却没有。
比如for...in的枚举遍历所有字符

let words = "Hangge.com"
for i in words{
print(i) //Hangge.com
}

2,要使用NSString的情况

(1)String有hasPrefix/hasSuffix方法用来判断是否以某字符串开头或结尾,但却没有containsString方法判断内部是否包含另一个字符串。但这个方法NSString却有,所有我们只能先将String转换成NSString。

let words = "Hangge.com"
if (words as NSString).containsString("ge"){
print("Yes") //YES
}
或者使用String的rangeOfString方法来判断是否包含这个字符串:

let words = "Hangge.com"
if words.rangeOfString("co") != nil {
print("Yes") //YES
}

(2)String与Range配合比较麻烦,比如下面截取字符串的一部分,分别用转换成NSString再截取和直接使用String截取做演示,大家可以自行比较。

//先转换成NSString
let rangeStr1 = (words as NSString).substringWithRange(NSMakeRange(4,2)) //ge

//不转换
let index = words.startIndex.advancedBy(4)
let index2 = words.startIndex.advancedBy(6)
let range = Range(start: index, end: index2)
let rangeStr2 = words.substringWithRange(range) //ge

原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_798.html

2,如何使用Range截取字符串

Swift中的Ranges和Objective-C中的NSRange有很大的不同,Swift中的Ranges的使用还是比较合理的,但是想要正确的使用Ranges真的需要一些特别的技巧。
看一个例子,下面这段代码展示的是截取以指定的字符开头和以指定的字符结尾的子字符串:
var str = "Hello, playground"
let rangeOfHello = Range(start: str.startIndex,
end: advance(str.startIndex, 5))
let helloStr = str.substringWithRange(rangeOfHello)
helloStr //"Hello"
可以看到,不能通过指定开始结束的Int值来获取Range,需要使用String类的startIndex和endIndex属性(String.startIndex的类型不是Int),这就是Swift Ranges特别的地方。

若想获取一个超出startIndex范围的Range,你可以使用上述代码里用到的advance的函数。advance也可以用于从结尾开始计算,所以如果需要相对于endIndex获取index,像下面的代码一样,使用一个负数即可:
let dob = "01/01/2000"
let rangeOfYear = Range(start: (advance(dob.endIndex, -4)),
end: dob.endIndex)
let yearStr = dob.substringWithRange(rangeOfYear)
yearStr // "2000"

3,在java中怎么截取指定字符之后的字符串?

目前整理出来三种形式:可根据实际需要选择使用String userNameUrl;int beginIndex = 0;int endIndex = 0;userNameUrl = "454512@hongri@4944115455d9591b274648a06303d910de";/*** 方法一:*/beginIndex = userNameUrl.indexOf("@")+1;endIndex = userNameUrl.lastIndexOf("@");System.out.println(userNameUrl.substring(beginIndex,endIndex));/*** 方法二:*/System.out.println(userNameUrl.split("@")[1].toString());/*** 方法三:*/System.out.println(userNameUrl.substring(7, 13));运行结果:

精华总结

雨露,是万物生长的灵丹妙药,它能让万物欣欣向荣,给人带来希望和欢乐。起名,是给孩子取名最重要的一步,因为名字,在某种程度上就是一种文化。一个好的名字,可以让孩子从小拥有一个好的起点。那么,旸字取名呢,有着什么样的寓意及含义?

1、旸是五行金之字,五行属水,寓意孩子聪明机智,有大智慧,富有爱心。

根据五行属性来取名,金能克水,就像是金被水淹没了,所以会出现水变少,阳气不充足的情况。而旸字五行属水,表示有希望的样子,寓意孩子聪明机智,有大智慧,富有爱心,有爱心之义,对人非常友好,人缘非常好。由于在起名时需要注意五行八字,所以名字要避开太多不利因素。例如孩子取名为旸这个名字时,可选择五行属金且与水相冲或水火相济或金水相济等字面寓意相搭。

2、旸字是木之金之字,五行属木,为金之态,寓意孩子金木水火土五行协调,和谐发展。

雨露的滋润,日出而作,日落而息,都让人感到无比满足。旸,字音shèng,寓意着孩子有一颗包容和感恩之心。这与“日出而作、日落而息”有异曲同工之妙……旸给人带来欢乐、吉祥的同时,也寓意着孩子金木水火土协调发展……

3、旸是一种很有灵性的字,可形容孩子生机勃勃,乐观向上。

【旸】有光明、温暖、明朗的意思,可用作名字。【阳凯是太阳之意。【阳阳阳】阳代表明亮,阳代表光明及温暖。用阳代表光明的事物,表示孩子生机勃勃,乐观向上。【阳欣可表示欣欣向荣之意。【阳和】可表示温暖的意思。

4、旸字取名,寓意孩子乐观向上,对生活充满希望。

旸字寓意孩子乐观向上,对生活充满希望,乐观积极的生活态度,有助于提高孩子的自信心。另外旸字取名还有着积极向上、乐观开朗、吉祥幸福、生活美满、幸福美满等美好祝愿,其寓意吉祥。而且旸在中国汉字里是非常多见的一个字,我们可以将这个字用在名字中来表达。旸字取名代表着孩子未来很美好而充满希望。如果将其用于起名中,则代表着孩子未来会有很多希望。同时也象征着孩子将来会有所成就。

5、旸作为名字有吉祥富贵之意。

旸这个名字,在很早的时候就被赋予了吉祥富贵的寓意,因为它在名字中的意思很多。所以有很高的吉祥富贵之意。这个名字将孩子命名为【旸】具有美好的寓意。

上一篇:好听的相册名称

下一篇:世界上最黑的人