想当初刚在学习JAVA时
一段 new String("ami") != new String("ami")
输出结果是false
搞得一个程序小萌新坐在教室里一脸蒙
导致现在的我每次在学习一个新语言时
都会特别多看一点字串操作方面的文件
接下来一起研究一下字串吧!
// 字串宣告
let name = "swift"
// 字串连接
let welString1 = "Welcome, " + name + "!"
print(welString1) // 输出: Welcome, swift!
// 字串插值
let welString2 = "Welcome, \(name)!"
print(welString2) // 输出: Welcome, swift!
// 字串赋值与修改
var welString3 = welString2
welString3 += " Have a nice time!"
print(welString3) // 输出: Welcome, swift! Have a nice time!
// 字串直接比对值
print(welString2 == "Welcome, swift!") // 输出: true
// 字串比对 实际上是比对 Unicode值
print("é" == "e\u{301}") // 输出: true
// 撷取字串元素 取字串 直到第一个空白为止
let myName = "Ami Wu"
print( myName.split(separator: " ")[0]) // 输出: Ami
// 取字串数量
print(myName.count) // 输出: 6
// 字串转阵列
print(Array(myName)) // 输出: ["A", "m", "i", " ", "W", "u"]
// 新增字串
var newName = "new"
newName.append(" day")
print(newName) // 输出: new day
// 大小写转换
print("ami Test".lowercased()) // 输出: ami test
print("ami Test".uppercased()) // 输出: AMI TEST
// 判断字串
print("ami test".hasPrefix("ami")) // 前缀 输出: true
print("ami test".hasSuffix("test")) // 後缀 输出: true
print("ami test".contains("te")) // 包含 输出: true
// 多行文字模板
let s1 = """
这边可以多行输入
很方便喔
"""
print(s1)
//输出:
//这边可以多行输入
// 很方便喔
字串操作上蛮直觉的
只是 \()
这种插值法 蛮特别的
多行模板操作起来也很方便
fun main() {
// 字串宣告
val name = "kotlin"
// 字串连接
val welString1 = "Welcome, " + name + "!"
println(welString1) // 输出: Welcome, kotlin!
// 字串插值
val welString2 = "Welcome, $name!"
println(welString2) // 输出: Welcome, kotlin!
// 字串赋值与修改
var welString3 = welString2
welString3 += " Have a nice time!"
println(welString3) // 输出: Welcome, kotlin! Have a nice time!
// 字串直接比对值
println(welString2 == "Welcome, kotlin!") // 输出: true
// 字串比对 实际上是比对 Unicode值
println("é" == "e\u0301") // 输出: false "é" 与 "é" 实际上比对会不相等
// 访问字串元素 取字串 直到第一个空白为止
var myName = "Ami Wu"
println(myName.split(' ')[0]) // 输出: Ami
// 取字串数量
println(myName.length) //6
// 字串转阵列
println(myName.toList()) // 输出: [A, m, i, , W, u]
// 新增字串
var newName = "new"
println(newName.plus(" day")) // 输出: new day
println(newName) //并不会直接改变 // 输出: new
// 大小写转换
println("ami Test".lowercase()) // 输出: ami test
println("ami Test".uppercase()) // 输出: AMI TEST
// 判断字串
println("ami test".startsWith("ami")) // 判断起始 输出: true
println("ami test".endsWith("test")) // 判断结尾 输出: true
println("ami test".contains("te")) // 包含 输出: true
// 多行文字模板 他会连前方空白一起加入
var s1 = """
这边可以多行输入
很方便喔
"""
print(s1)
// 输出:
// 这边可以多行输入
// 很方便喔
}
kotlin 在字串操作上 与swift只有用字上稍微不同
其他大部分都相同
但 "é" != "é" 这件事情...倒是让人有点困惑
不是困惑为什麽不能相等.... 而是Swift为什麽相等了?
今天阿咪我困惑啊
é != é
是我眼睛业障重吗?
文字看起来一样
但JS的 charAt 一个是101 一个是 233
Unicode 一个是 %E9 一个是 e%u0301
除了Swift之外 其他语言判断起来都不相等
连用equals判断也不相等 ლ(゚д゚ლ)
你说说我容易吗
看着官方Swift的文件练习一下
就卡关!?
我还拿着这题去问写iOS APP的朋友
他们回我...这题太深入了 没研究
这颗大苹果啊~你的开发文件水很深啊
有没有Swift大神可以指教一下
这到底是什麽道理~
>>: [CSS] Flex/Grid Layout Modules, part 8
前几天我们把购物车流程跑完了,其中有讲到优惠的部份, 因此我们订单需要新增table来储存该内容,这...
浏览了超过 50 篇文章,直到找到这篇影音教学,真的是非常符合目前的需求~! 观看影片後也能轻松上手...
变数 变数基本上是用来暂时储存资料的地方,可以想像在我们执行程序的时候,需要用一个代号去代表我们需要...
Hello, 各位 iT邦帮忙 的粉丝们大家好~~~ 本篇是 Re: 从零开始用 Xamarin 技...
因为感觉在操作上还蛮常用到 array 及 object 的各种方法,所以这篇就来说说 JavaSc...