Kotlin中String的常用方法

Kotlin:字符串(String) 我坚信,坚持学习,每天进步一点,滴水穿石,我们离成功都很近!以下是总结出来的字节经典面试题目,包含:计算机网络,Kotlin,数据结构与算法,Framework源码,微信小程序,NDK音视频开发,计算机网络等。字节高级Android经典面试题和答案《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**如果你觉得这些内容对你有帮助,可以扫码获取!! 阅读详情

Kotlin的String类中有非常多的方法,下面列举一些经常用到的方法,首先定义一个字符串变量,后面都以这个变量来验证String相关的方法。

//定义字符串
val str = "123456789"

字符串截取

字符串截取操作可以使用substring、dropXXX系列和takeXXX系列方法

drop(n: Int): String

去掉前n个字符,返回其余的字符串,等同于substring(n)

//删掉前3个字符
println(str.drop(3))
//输出结果:456789
dropLast(n: Int): String

去掉后n个字符,返回其余的字符串,等同于substring(0, str.length - n)

//删掉后4个字符
println(str.dropLast(4))
//输出结果:12345
dropWhile(predicate: (Char) -> Boolean): String

根据条件从前往后逐一去掉字符,直到不满足条件时则返回后面的字符串,该方法参数是一个lambda表达式,下面举几个例子

//删掉字符串前面等于1或2的字符
val str = "123456789"
println(str.dropWhile {
    it == '1' || it == '2'
})
//输出结果:3456789

val str = "12111223456789"
println(str.dropWhile {
    it == '1' || it == '2'
})
//输出结果:3456789

val str = "13456781219232"
println(str.dropWhile {
    it == '1' || it == '2'
})
//输出结果:3456781219232
dropLastWhile(predicate: (Char) -> Boolean): String

和dropWhile相反,dropLastWhile是从后面开始根据条件去掉字符串

val str = "13456781219232"
println(str.dropLastWhile {
    it == '1' || it == '2'
})
//输出结果:1345678121923
take(n: Int): String

获取前n个字符,如果n大于字符串的长度则会返回整个字符串

//获取前4个字符
println(str.take(4))
//输出结果:1234

//获取前20个字符
println(str.take(20))
//输出结果:123456789
takeLast(n: Int): CharSequence

和take方法对应,takeLast则是从后开始获取n个字符

//获取后3个字符,输出:789
println(str.takeLast(3))
takeWhile(predicate: (Char) -> Boolean): String

这个方法会从前往后一直返回满足条件的字符,直到不满足条件为止

//获取以6开头的所有字符
println(str.takeWhile {
	it == '6'
})
//输出结果为空

//获取以1或2开头的所有字符
println(str.takeWhile {
	it == '1' || it == '2'
})
//输出结果为空:12
takeLastWhile(predicate: (Char) -> Boolean): String

这个方法和takeWhile对应,从后往前匹配,返回符合条件的数据

takeIf(predicate: (T) -> Boolean): T?

这个方法会根据lambda参数条件判断,满足条件返回自身,否则返回null。参数对象是一个泛型,不仅适合String类型,其他任何类型都可以。

//判断字符串的长度是否大于5
println(str.takeIf {
	it.length > 5
})
//输入结果:123456789
first() / first(predicate: (Char) -> Boolean): Char

返回字符串的第一个元素,或者可以传入一个过滤条件,返回满足条件的第一个元素

println(str.first()) //输出:1
println(str.first {it == '5'}) //输出:5
println(str.first {it == 'a'}) 
//输出:
Exception in thread "main" java.util.NoSuchElementException: Char sequence contains no character matching the predicate.
	at com.example.demoapp.DemoCheckKt.main(DemoCheck.kt:19)
	at com.example.demoapp.DemoCheckKt.main(DemoCheck.kt)
firstOrNull() / firstOrNull(predicate: (Char) -> Boolean): Char

和上面的方法一样,返回字符串的第一个元素,或者可以传入一个过滤条件,返回满足条件的第一个元素,但是不一样的地方在于,上面的方法如果没有匹配的结果则会抛出NoSuchElementException异常,而firstOrNull则不会抛出异常,会直接返回null。

println(str.firstOrNull()) //输出:1
println(str.firstOrNull{it == '5'}) //输出:5
println(str.firstOrNull{it == 'a'}) //输出:null

与first()和firstOrNull()相对应的方法,last()、lastOrNull()则是获取最后一个满足条件的元素。还有find(predicate: (Char) -> Boolean): Char?方法也是根据条件查找元素,就不再赘述了。

空格处理

trim

//去掉开头的空格
println(" 123  456 ".trimStart())

//去掉结尾的空格
println(" 123  456 ".trimEnd())

//去掉两端的空格
println(" 123  456 ".trim())

//过滤字符:去掉所有空格,输出:12345678
println("123 456  7   8".filter { !it.isWhitespace() })

reversed

//反转字符串,输出:987654321
println(str.reversed())
【PINN物理信息网络】基于PINN物理信息网络求解泊松方程(python) 阅读详情

相关推荐

PySide6 vs PyQt6:新手如何根据Python版本选择GUI库?附版本兼容性测试

本文针对Python GUI开发新手,详细对比了PySide6与PyQt6的核心差异,并提供了基于Python 3.8至3.12等不同版本的兼容性实测数据与选择建议。文章重点分析了版本选择策略,帮助开发者根据自身Python环境、项目需求(如与matplotlib集成)及许可证考量,做出最合适的决策,并附有安装验证与避坑指南。

weixin_29094539的博客 702

Kotlin——初级篇(八):字符串(String)

一、字符串查找 字符串查找功能在实际开发中,只会用到几个简单的函数,这里我只说明几个常用的。 1.1、获取第一个元素 主要包含first() | firstOrNull()和first{} | firstOrNull{}四个函数 first() | firstOrNull() 作用 :查找字符串的第一个元素 区别 :若字符串为空串时,前者会抛出NoSuchElementExceptio n异常 ,后者会返回null 例: val str = "kotlin very good"//.

李杭坤的博客 1685

GPD源码分析

gpd使用示例 先看下面一段代码,为标准gpd算法的使用方法,可以看到输入为点云,cloud_camera_; 输入:std::unique_ptr<gpd::util::Cloud> cloud_camera_ 输出: std::vector<std::unique_ptr<gpd::candidate::Hand>> grasps; // detect grasp poses gpd对象:std::unique_ptr<gpd::GraspDetect.

weixin_41003113的博客 2331

【Kotlin -- 知识点】字符串(String)

实际开发中,关于字符串的使用可谓是随处可见,在这篇文章中,会对字符串(String)的常用操作做出一个讲解。

Kevin Learn Android 2231

Cursor Agent模式下如何优雅切换conda环境运行Python脚本?3种实用方法实测

本文针对Cursor Agent模式下运行Python脚本时环境错配的痛点,实测了三种优雅切换conda环境的实用方法。通过Shell全局配置、项目级.cursorrc文件定制以及对话中直接指令,开发者可以确保AI助手在正确的虚拟环境中执行代码,从而提升开发效率和协作流畅度。

redis7keeper的博客 597

Agentic AI上下文工程架构终极指南:全面解决智能体理解问题

在开始架构设计前,我们需要先明确两个核心概念——Agentic AI和上下文工程。Agentic AI(智能体AI)是具备自主目标、环境交互、任务分解能力的AI系统。自主性:不需要人类逐步指令,能自己规划任务(比如“帮我订机票”→自动分解为“查航班→选座位→填信息→支付”);动态性:能根据环境变化调整行为(比如订机票时发现航班延误,自动改签到下一班);连续性:能记住历史交互(比如“上次你说喜欢靠窗位,这次帮你预留了”)。

AI开发架构师 1116

Kotlin学习笔记三、字符串String及操作

1、像Java那样,字符串String转换成其他数据类型: var int:String = "1"; var long = "20"; var float = "22.23"; var double = "32.15"; var boolean = "true"; var chars = "asdf" var integer:Int = int.toInt(); var longInteger = long.toLong(); var decimals = float.toFloat() va

haoyuegongzi的博客 7226

Ansys Zemax | 利用OpticStudio实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证

本文详细介绍了如何利用Ansys Zemax的OpticStudio软件实现衍射光学元件(DOE)与超透镜(metalens)的高效建模与验证。通过混合建模策略、相位面等效建模法、POP与FDTD联合验证等多种方法,帮助工程师快速解决跨尺度仿真难题,提升设计效率与精度。文章还分享了实战案例与高级技巧,适用于AR、医疗内窥镜等应用场景。

weixin_29268331的博客 499

自学kotlin笔记

自学kotlin笔记

syfxx的博客 465

基于近场动力学的二维疲劳裂纹扩展模型_近场动力学数值模拟的程序实现(1)——引言...

参考书目W. H. Gerstle. 2015. Introduction to Practical Peridynamic: Computational Solid Mechanics Without Stress and Strain.E.Madenci, A.Barut, M.Dorduncu. Peridynamic Differential Operator for Numerical ...

weixin_39764603的博客 1202

SAP-ABAP:接口多继承与复合接口设计:复杂业务场景下的能力组合实现方案

本文介绍了ABAP中通过接口多继承与复合接口设计实现能力组合的方案。文章首先辨析了类实现多个接口与接口继承接口的核心概念,指出ABAP虽不支持类多继承,但可通过这两种机制灵活组合能力。随后详细讲解了类实现多个接口的语法规则与三种调用方式,并给出了五个基础能力接口的设计示例(日志记录、权限校验、数据导出、消息通知、格式转换)。作者通过对比单继承与接口多重实现的差异,强调后者在解耦和扩展性上的优势,为复杂业务场景下的能力组合提供了实用解决方案。

baidu_35680696的博客 245

kotlin之字符串

kotlin之字符串前言字符串的定义和操作字符串之间的比较 前言 在Java中我们拥有字符串,那自然在我们的kotlin中也是拥有字符串的,只是在kotlin中的字符串添加了很多实用的方法。 字符串的定义和操作 以下是字符串的定义和操作。 class StringDemo { companion object { @JvmStatic fun main...

笨鸟不会飞 617

Ultralytics 框架中 model.predict() 返回的 results 对象的详细解析

通过掌握 results 对象的使用方法,您可以快速实现模型部署、数据分析与可视化。

浩瀚之水的专栏 747

Kotlin学习快速入门(1)——基本数据类型以及String常用方法使用

本文适合有Java基础的人 Kotlin语法特点 相比java,省略括号,可以自动判断类型,省略new关键字,空指针捕获 主函数 kotlin文件(kt文件)中,只有要下列的方法,就可以运行,无需像之前的java那般,还要定义个类,写上main方法 fun main(args: Array<String>) { println("hello world") } 基本数...

weixin_30552811的博客 327

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android中 int 和 String 互相转换的多种方法

1 如何将字串 String 转换成整数 int?  A. 有两个方法: 1). int i = Integer.parseInt([String]); 或  i = Integer.parseInt([String],[int radix]); 2). int i = Integer.valueOf(my_str).intValue();  注: 字串转成 Double

chrisfxs的专栏 4万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

kotlin边学习,边实战到项目中——必须记住的

kotlin边学习,边实战到项目中——常见语法

勤劳是一种习惯 204

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Kotlin基础总结

Kotlin的学习总结

hao378300757的博客 1763

Android Compose 基础系列:在 Kotlin 中创建和使用变量

在编程中,变量就像一个带标签的盒子,用来存放某个数据值。标签(变量名):告诉我们盒子里装的是什么盒子里的值:就是存放的数据盒子外写着name(表示名字)盒子里放着"Alex"(表示名字的值)当你想修改名字时,只需替换盒子里的值,而不必修改整个程序。val 变量名: 数据类型 = 初始值2val 表示不可变变量(定义后不能修改值)var 表示可变变量(定义后可重新赋值)做得很好!

2301_76476890的博客 938

Kotlin/Java中String的equals和==

,而此时再次对s进行操作改变s的值时候,如再次给s赋值使得s=”_string类的字符串与stringbuffer类的字符串判断是否相同。每次Java/Kotlin定义/创建一个String后,​如果String内存缓存池内不存在给定值比如"zhang"相同的String对象,那么此时Java将为此创建新的String对象,并存放在String缓存池内。如果String缓存池内存中有与指定值相同的String对象,那么此时Java将不创建新String对象,而直接返回已存在的String对象的引用。

Zhang Phil 1112

从今天开始学kotlin-String

文章目录String.kt的源码String.kt中的方法使用 现在在学kotlin,在网上找例子教程,想通过例子来快速学习,但是多年保留下来的习惯让我打开源码看。今天遇到的就是String. 在使用java的时候,我记得有面试官问过我String 能否继承重写,当时我是不知道的,他说String 是final类型的封装类,所以是不可以的,今天我打开了kotlin 的String ,发现它是public!!!这就意味着我们可以对它为所欲为 先看源码: String.kt的源码 package kotlin

css33的专栏 525

Kotlin解析String路径小知识

解析String路径,简单的小知识稳固 fun main(args: Array) { val url = “/users/yole/kotlin-book/chapter.doc” fun prasePath(path : String){ //最后一个指定字符串之前的部分全部保存 val a = path.substringBeforeLast("/") println(a) //最后一个指...

小亮的博客 1293

String——Kotlin基础

Kotlin有两种字面值: 转义字符串:相当于java中的字符串 原始字符串:包含换行和任意文本。需要用三个双引号引起来。 原始字符串 var txt = """ |床前明月光, |疑是地上霜。 |举头望明月, |低头思故乡。 """.trimMargin() println(txt) txt = """ >昔人已乘黄鹤去,此地空余黄鹤楼...

江澎涌的博客 911

kotlin扩展方法

扩展方法是指不改变类的源码的情况下为类增加自定义的方法 fun String.times(times: Int): String { var builder = StringBuilder() for (i in 0 until times) { // 这里的this只得调用者本身 builder.append(this) } ret...

hongzhily的博客 1232

Kotlin:字符串(String)(3)

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

2401_84897193的博客 1034

java string 截取_Kotlin:字符串(String)

实际开发中,关于字符串的使用可谓是随处可见,如若你连最基本的操作都不会,那岂不“JJ思密达“?故而, 在这篇文章中,会对字符串(String)的常用操作做出一个讲解。比如,字符串的截取、查找、获取长度、替换等等…目录 一、字符串查找 字符串查找功能在实际开发中,只会用到几个简单的函数,这里我只说明几个常用的。1.1、获取第一个元素主要包含first() | firstOrNull()和f...

weixin_39890102的博客 4407

Kotlin中String的==相等比较符

Kotlin中String的==和equals()比较结果相同,都会比较字符串内容。示例代码展示了字符串常量比较都返回true,因为Kotlin/Java会复用字符串常量池中的相同对象。当创建字符串时,若池中已存在相同值则直接返回引用,否则新建对象并缓存。这种机制优化了内存使用,使得相同字符串常量的比较更高效。

Zhang Phil 617
上一篇: kotlin基本语法
下一篇: Kotlin条件控制及循环
Android开发猿
博客等级 码龄11年 72粉丝 34原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值