Kotlin 字符串教程:深入理解与使用技巧
Kotlin 字符串
字符串用于存储文本。
字符串包含由双引号包围的字符集合:
示例
var greeting = "Hello"
与 Java 不同,您不必指定变量是字符串。Kotlin 足够智能,可以通过双引号理解上例中的 greeting 变量是字符串。
然而,与其他数据类型一样,如果您坚持,可以指定类型:
示例
var greeting: String = "Hello"
注意:如果您想创建一个字符串但不赋值(并稍后赋值),您必须在声明变量时指定类型:
示例
这样是可以的:
var name: String
name = "John"
println(name)
示例
这样会产生错误:
var name
name = "John"
println(name)
访问字符串
要访问字符串的字符(元素),必须在方括号内引用索引号。
字符串索引从 0 开始。在下面的示例中,我们访问 txt 中的第一个和第三个元素:
示例
var txt = "Hello World"
println(txt[0]) // 第一个元素 (H)
println(txt[2]) // 第三个元素 (l)
[0] 是第一个元素,[1] 是第二个元素,[2] 是第三个元素,等等。
字符串长度
Kotlin 中的字符串是对象,包含可以对字符串执行某些操作的属性和函数,通过在特定字符串变量后写一个点字符(.)。例如,可以使用 length 属性找到字符串的长度:
示例
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
println("txt 字符串的长度是: " + txt.length)
字符串函数
有许多可用的字符串函数,例如 toUpperCase() 和 toLowerCase():
示例
var txt = "Hello World"
println(txt.toUpperCase()) // 输出 "HELLO WORLD"
println(txt.toLowerCase()) // 输出 "hello world"
比较字符串
compareTo(string) 函数比较两个字符串,如果两者相等则返回 0:
示例
var txt1 = "Hello World"
var txt2 = "Hello World"
println(txt1.compareTo(txt2)) // 输出 0 (它们相等)
查找字符串中的字符串
indexOf() 函数返回指定文本在字符串中首次出现的位置(包括空格):
示例
var txt = "Please locate where 'locate' occurs!"
println(txt.indexOf("locate")) // 输出 7
记住,Kotlin 从零开始计数。
0 是字符串中的第一个位置,1 是第二个,2 是第三个……
字符串中的引号
要在字符串中使用引号,使用单引号('):
示例
var txt1 = "It's alright"
var txt2 = "That's great"
字符串连接
可以在字符串之间使用 + 运算符将它们添加在一起,形成一个新的字符串。这称为连接:
示例
var firstName = "John"
var lastName = "Doe"
println(firstName + " " + lastName)
请注意,我们添加了一个空文本(" ")以在打印时在 firstName 和 lastName 之间创建一个空格。
您还可以使用 plus() 函数连接两个字符串:
示例
var firstName = "John "
var lastName = "Doe"
println(firstName.plus(lastName))
字符串模板/插值
除了连接,您还可以使用“字符串模板”,这是一种在字符串中添加变量和表达式的简单方法。
只需使用 $ 符号引用变量:
示例
var firstName = "John"
var lastName = "Doe"
println("My name is $firstName $lastName")
“字符串模板”是 Kotlin 的一个流行特性,因为它减少了代码量。例如,您不必像在连接示例中那样在 firstName 和 lastName 之间指定空格。
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
Kotlin 字符串教程:深入理解与使用技巧的更多相关文章
- Python复杂场景下字符串处理相关问题与解决技巧
1.如何拆分含有多种分隔符的字符串¶ ''' 实际案例: 我们要把某个字符串依据分隔符号拆分不同的字段,该字符串包含多种不同的分隔符,例如: s=’ab;cd|efg|hi,jkl|mn\topq ...
- Kotlin入门教程——目录索引
Kotlin是谷歌官方认可的Android开发语言,Android Studio从3.0版本开始就内置了Kotlin,所以未来在App开发中Kotlin取代Java是大势所趋,就像当初Android ...
- 对Java中字符串的进一步理解
字符串在程序开发中无处不在,也是用户交互所涉及到最频繁的数据类型,那么字符串不仅仅就是我们简单的理解的String str = "abc";一起来更加深入的看一下 在Java中,字 ...
- Windows 8实例教程系列 - 理解应用框架
原文:Windows 8实例教程系列 - 理解应用框架 Windows 操作系统之所以风靡世界,是因为其“易学易用”,从用户的角度出发,让数以万计的非IT人员使用计算机实现娱乐,工作等目的.Windo ...
- 字符串replace的理解和练习和配合正则表达式的使用
下面代码展示了(demo地址 https://codepen.io/peach_/pen/jONJjRY): 1.字符串replace的理解和练习和配合正则表达式的使用, 2.正则表达式学习 3.通过 ...
- Kotlin 入门教程
Kotlin 入门教程 Android / Java https://developer.android.com/kotlin?hl=zh-cn 使用 Kotlin 开发 Android 应用 使用 ...
- CTF必备技能丨Linux Pwn入门教程——调整栈帧的技巧
Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...
- kotlin字符串比较&空值处理&when表达式
字符串比较: 字符串的比较也是实际中比较常见的,下面来看下它的比较跟java中有啥不同,下面走起! 如我们所预期,其结果: 下面再来: 如果是java,结果肯定是为false,因为"==&q ...
- java字符串函数及理解
Java中的字符串也是一连串的字符.但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理.将字符串作为内置的对象处理允许Java提供十分丰富的功能特性 ...
- 数值和字符串相互转换(C++ 数据类型转换技巧)
类型转换是将一种类型的值映射为另一种类型的值.进行数据类型的转换. 是在实际代码编写中经常遇到的问题,特别是字符串和其他类型的转换. 1.将字符串转换为整数 (1).转换函数// 双精度函数doubl ...
随机推荐
- Redisson 限流器源码分析
Redisson 限流器源码分析 对上篇文章网友评论给出问题进行解答:redis 的key 是否会过期 可以先阅读上篇文章: redis + AOP + 自定义注解实现接口限流 - 古渡蓝按 - 博客 ...
- Linux设备驱动--阻塞与非阻塞I/O
注:本文是<Linux设备驱动开发详解:基于最新的Linux 4.0内核 by 宋宝华 >一书学习的笔记,大部分内容为书籍中的内容. 书籍可直接在微信读书中查看:Linux设备驱动开发详解 ...
- ETL工具-nifi干货系列 第一讲 揭开nifi神秘面纱
1.nifi简介 Apache NiFi 是基于流程编程概念的数据流系统.它支持强大且可扩展的数据路由.转换和系统中介逻辑的有向图.NiFi具有基于Web的用户界面,用于设计.控制.反馈和监控数据流. ...
- 《编译原理》阅读笔记:p18
<编译原理>学习第 3 天,p18总结,总计 14页. 一.技术总结 1.assembler (1)计算机结构 要想学习汇编的时候更好的理解,要先了解计算机的结构,以下是本人学习汇编时总结 ...
- 大模型重塑软件开发,华为云AI原生应用架构设计与实践分享
在ArchSummit全球架构师峰会2024上,华为云aPaaS平台首席架构师马会彬受邀出席,和技术爱好者分享AI原生应用引擎的架构与实践. AI大模型与AI重塑软件的大趋势下,软件会发生哪些本质的变 ...
- 3568F-Qt工程编译说明
- B码对时方案,基于TI AM62x异构多核工业处理器实现!
什么是IRIG-B码对时 IRIG-B(inter-range instrumentationgroup-B)码是一种时间同步标准,通常用于精确的时间测量和数据同步,广泛应用于电力.通信.航空等领域. ...
- hadoop集群配置文件
配置文件与功能对应: 修改core-site.xml文件 <property> <name>fs.defaultFS</name> <!--配置hdfs系统的 ...
- P9576 题解
赛时没仔细想,赛后才发现并不难. 将 \(l,r\) 与 \(l',r'\) 是否相交分开讨论. 假若不相交,那么 \(l',r' < l\) 或者 \(l',r' > r\) 并且 \( ...
- aop的两种配置方法
一.实现接口并重写方法 实现org.aopalliance.intercept.MethodInterceptor接口,这是AOP Alliance规范中的接口,Spring AOP支持它.这种方式比 ...