[Swift]字符串大小写转换,同时实现本地化或设置语言环境

摘要:
在NSString中,字符串大小写的转换方法有三种:1.转换字符串大小写2.转换字符串大小并实现本地化3.转换字符串大小和设置语言环境。本地化大写-部分字母转换为大写并本地化。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/9812156.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

在NSString中提供了3种字符串大小写转换方式:
1. 转换字符串大小写
2. 转换字符串大小写,并实现本地化
3. 转换字符串大小写,并设置语言环境。

一、 转换字符串大小写
如果只是想单纯的将字符串进行大小写转换,可以使用NSString中的3个属性实现,
Lowercased-将字母转换为小写
Uppercased-将字母转换为大写
Capitalized-将首字母大写

(1.1)lowercased属性是将字符串中的字母全部转换为小写字母.
其语法形式:var lowercased: String { get }

1 var str1 = String("STRENGTHEN")
2 var str2 = NSString(string:"STRENGTHEN")
3 //String只可使用lowercased()
4 //只返回全部小写,不修改原字符串
5 print(str1.lowercased())
6 //Print: "strengthen"
7 //String只能用lowercased()
8 //str1.lowercased运行报错:expression resolves to an unused function
9 
10 //NSString只可使用.lowercased
11 //只返回全部小写,不修改原字符串
12 print(str2.lowercased)
13 //Print: "strengthen"
14 //NSString只能用lowercased
15 //.lowercased()运行报错:cannot invoke 'lowercased' with no arguments

(1.2)uppercased属性是将字符串中的字母全部转换为大写字母。
其语法形式:var uppercased: String { get }

1 var str1 = String("strengthen")
2 var str2 = NSString(string:"strengthen")
3 //String只可使用uppercased()
4 //只返回全部大写,不修改原字符串
5 print(str1.uppercased())
6 //Print: "STRENGTHEN"
7 //String只能用uppercased()
8 //str1.uppercased运行报错:expression resolves to an unused function
9 
10 //NSString只可使用.uppercased
11 //只返回全部大写,不修改原字符串
12 print(str2.uppercased)
13 //Print: "STRENGTHEN"
14 //NSString只能用uppercased
15 //.uppercased()运行报错:cannot invoke 'uppercased' with no arguments

(1.3)capitalized属性实现的功能是将字符串中的首字母大写.
其语法形式:var capitalized: String { get }

1 var str1 = String("strengthen")
2 var str2 = NSString(string:"strengthen")
3 //String和NSString都只可使用capitalized
4 //只返回首字母大写,不修改原字符串
5 print(str1.capitalized)
6 //Print: "Strengthen"
7 //只返回首字母大写,不修改原字符串
8 print(str2.capitalized)
9 //Print: "Strengthen"
10 
11 //String和NSString都使用capitalized()报错
12 //str1.capitalized()运行报错:cannot invoke 'capitalized' with no arguments
13 //str2.capitalized()运行报错:cannot invoke 'capitalized' with no arguments

二、转换字符串大小写,实现本地化
如果不是单纯的将字符串进行大小写转换,还要实现本地化,此时需要使用到NSString的3个属性,
localizedLowercase-全部字母转换为小写,并实现本地化。
localizedUppercase-部字母转换为大写,并实现本地化。
localizedCapitalized-首字母转换为首字母大写,并实现本地化。

(2.1)localizedLowercase属性可以将字符串的的全部字母转换为小写,并实现本地化。

其语法形式:var localizedLowercase: String { get }

1 var str1 = String("STRENGTHEN")
2 var str2 = NSString(string:"STRENGTHEN")
3 //String和NSString都只可使用localizedLowercase
4 //只返回全部小写,并实现本地化,不修改原字符串
5 print(str1.localizedLowercase)
6 //Print: "strengthen"
7 //只返回全部小写,并实现本地化,不修改原字符串
8 print(str2.localizedLowercase)
9 //Print: "strengthen"
10 
11 //String和NSString都使用localizedLowercase()报错
12 //str1.localizedLowercase()运行报错:cannot call value of non-function type 'String'
13 //str2.localizedLowercase()运行报错:cannot call value of non-function type 'String'

(2.2)localizedUppercase属性可以将字符串的的全部字母转换为大写,并实现本地化。

其语法形式:var localizedUppercase: String { get }

1 var str1 = String("strengthen")
2 var str2 = NSString(string:"strengthen")
3 //String和NSString都只可使用localizedUppercase
4 //只返回全部大写,并实现本地化,不修改原字符串
5 print(str1.localizedUppercase)
6 //Print: "STRENGTHEN"
7 //只返回全部小写,并实现本地化,不修改原字符串t
8 print(str2.localizedUppercase)
9 //Print: "STRENGTHEN"
10 
11 //String和NSString都使用localizedUppercase()报错
12 //str1.localizedUppercase()运行报错:cannot call value of non-function type 'String'
13 //str2.localizedUppercase()运行报错:cannot call value of non-function type 'String'

(2.3)localizedCapitalized属性可以将字符串的首字母转换为大写,并实现本地化。

其语法形式:var localizedCapitalized: String { get }

1 var str1 = String("strengthen")
2 var str2 = NSString(string:"strengthen")
3 //String和NSString都只可使用localizedCapitalized
4 //只返回首字母大写,并实现本地化,不修改原字符串
5 print(str1.localizedCapitalized)
6 //Print: "Strengthen"
7 //只返回首字母大写,并实现本地化,不修改原字符串
8 print(str2.localizedCapitalized)
9 //Print: "Strengthen"
10 
11 //String和NSString都使用localizedCapitalized()报错
12 //str1.localizedCapitalized()运行报错:cannot call value of non-function type 'String'
13 //str2.localizedCapitalized()运行报错:cannot call value of non-function type 'String'

三、转换字符串大小写,并设置语言环境
在NSString中除了上文中提到的转换字符串大小写的属性外,还存在3个方法可以实现字符串的大小写转换,并将大小写的改变应用到本地化之后的其他语言版本中。
lowercased(with:)- 全部字母转换为小写,并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中.
uppercased(with:)- 全部字母转换为大写,并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中.
capitalized(with:)- 首字母转换为大小,并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中.

(3.1)lowercased(with:)方法是将字符串中的全部字母转换为小写,并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中。
其语法形式:func lowercased(with locale: Locale?) -> String
其中,locale用来设置语言环境。

1 var str1 = String("STRENGTHEN")
2 var str2 = NSString(string:"STRENGTHEN")
3 var l=Locale.current
4 //全部字母转换为小写
5 //并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中。
6 print(str1.lowercased(with: l)) 
7 print(str2.lowercased(with: l)) 
8 //Print: "strengthen"

(3.2)uppercased(with:)方法是将字符串中的全部字母转换为大写,并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中。
其语法形式:func uppercased(with locale: Locale?) -> String
其中,locale用来设置语言环境。

1 var str1 = String("strengthen")
2 var str2 = NSString(string:"strengthen")
3 var l=Locale.current
4 //全部字母转换为大写
5 //并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中。
6 print(str1.uppercased(with: l)) 
7 print(str2.uppercased(with: l)) 
8 //Print: "STRENGTHEN"

(3.3)capitalized(with:)方法是将字符串中的首字母转换为大写,并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中。
其语法形式:func uppercased(with locale: Locale?) -> String
其中,locale用来设置语言环境。

1 var str1 = String("strengthen")
2 var str2 = NSString(string:"strengthen")
3 var l=Locale.current
4 //首字母转换为大写
5 //并且可以通过设置的语言环境将大小写的改变应用到本地化之后的其他语言版本中。
6 print(str1.capitalized(with: l)) 
7 print(str2.capitalized(with: l)) 
8 //Print: "Strengthen"

免责声明:文章转载自《[Swift]字符串大小写转换,同时实现本地化或设置语言环境》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇有没有记录程序运行中所有的函数调用堆栈的工具?tcpdump抓包工具的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

大端法、小端法、网络字节序

关于字节序(大端法、小端法)的定义 《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序。   也可以说:  1.小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。  2....

vlan报文处理概述

1. VLAN下交换机接口出入数据处理过程 1)Acess端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省) 2)Acess端口发报文:将报文的VLAN信息剥离,直接发送出去 3)trunk端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如...

认识计算机中的大小端模式

前言 在java中java.nio包下有一个类是ByteOrder,这是什么东东,相信有很多人不知道。在我看了关于java.nio中有本书中就介绍到了。我努力的回忆我大学课本中学到过吗,好像没有。这是计算机理论方面的知识了。百度百科中就有关于“大小端模式的介绍”。猛击这里吧 大小端模式的定义 大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保...

博客园样式美化

前言 之前就想通过博客园提供的自定义样式功能美化一下博客,但是一直想等学会 vue 再来改(其实是懒......)。上个礼拜看到一位大神的博客感到非常惊艳,遂下定决心用一个周末来改。之前有想过自己设计样式,但是感觉越看越丑,所以还是决定照着这位大神的博客一点点改。 准备工作 1、先看看有没有轮子 Google 一下,没有喜欢的样式。 上 Github 也没有...

更全面的寻找post地址

我们在今后的爬虫学习过程中,要爬许许多多的网站。 唯有掌握如何对不同网站寻找到正确的post地址,才是任务之重。 比如,我访问了一个别的网站,这儿用人人网做例子。 在人人网登陆界面,使用F12进入开发者模式,找到整个登陆界面的源码: 所以,我们可以看到关键的登录模块源码有一个关键的参数,这个参数是action,存储登陆的url地址。 action="ht...

Android酷炫实用的开源框架(UI框架)

    原文链接:http://www.androidchina.net/1992.html 前言   忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮助,此博文介绍的都是UI上面的框架,接下来会有其他的开源框架(如:HTTP框架、DB框架)。 1.Side...