Android 字符串替换,去除空格等操作

简介: 今天在写代码的时候,需要对String进行一些操作,例如变小写,去除所有空格于是熟练的使用String的replaceAll,却发现没这个方法。后面才发现Kotlin使用的是自己的String,有自己的方法,用String的replace(" ","")方法也可以替换里面所有的空格。既然用到了,就寻思总结一下,这儿主要Kotlin的String方法,和Java的其实大差不差。

今天在写代码的时候,需要对String进行一些操作,例如变小写,去除所有空格


于是熟练的使用String的replaceAll,却发现没这个方法。


后面才发现Kotlin使用的是自己的String,有自己的方法,用String的replace(" ","")方法也可以替换里面所有的空格。


既然用到了,就寻思总结一下,这儿主要Kotlin的String方法,和Java的其实大差不差。


1.去除所有空格


" c h i n a ".replace(" ", "") //输出china,去除所有空格

2.去除开头结尾的空格


" c h i n a ".trim()//输出c h i n a;

3.内容替换


println("acdb and fff".replace("[abcd]".toRegex(), "y") )//yyyy yny fff
println("acdb and aaa".replace(Regex("[abcd]"), "y")   )//yyyy yny yyy

4.移除操作


println("123456".removeRange(0..2))//输出456
    println("123456".removeRange(0,2))//3456  参数 (开始位置,结束位置)

5.比较


println("123456".compareTo("123a"))//输出-45
    println("123A456".compareTo("123A",true))//输出-13 忽略大小写操作

compareTo方法是字符串与对象进行比较。按字典顺序比较两个字符串。返回值是整型,它是比较对应字符的大小(ASCLL码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的长度差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。

如果参数字符串等于此字符串,则返回值0;


如果此字符串小于字符串参数,则返回一个小于0的值


如果此字符串大于字符串参数,则返回一个大于0的值


6.相等equls


val a = "123"
val b = "123"
    println("123".equals(a)) //true
    println(b.equals(a)) //true

1.判断条件:


   若当前对象和比较的对象是同一个对象,即return true。也就是Object中的equals方法。


   若当前传入的对象是String类型,则比较两个字符串的长度,即value.length的长度。


         若长度不相同,则return false


         若长度相同,则按照数组value中的每一位进行比较,不同,则返回false。若每一位都相同,则返回true。


   若当前传入的对象不是String类型,则直接返回false


2.Object.equals与String.equals的区别:


   

Object.equals(==):比较内存地址,内存地址相同,说明是同一个对象;
        String.equals: 比较内容即可,不管内存地址。
总结:
        Object.equals相等,说明引用是同一个对象,那么String.equals一定相等;
        String.equals相等,只是说明字面值相等,不一定是同一个对象,所以Object.equals不一定相等。

3.源码


       Object作为String的父类,因为String重写了equals方法,所以,在String中,内容相同也返回true。object中是直接判断对象,返回true/false,string中,先判断是否是同一对象,不是则又去判断长度,再去一一比对值,源码很简单,可以去看一下。


先总结几个常用的,很基础,后面用到其他的,看了源码再来总结


相关文章
|
9月前
|
Java 数据库 Android开发
【专栏】Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理
【4月更文挑战第27天】本文探讨了Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理。通过案例分析展示了网络请求、图像处理和数据库操作的优化实践。同时,文章指出并发编程的挑战,如性能评估、调试及兼容性问题,并强调了多线程优化对提升应用性能的重要性。开发者应持续学习和探索新的优化策略,以适应移动应用市场的竞争需求。
261 5
|
9月前
|
Java Android开发
Android系统 获取用户最后操作时间回调实现和原理分析
Android系统 获取用户最后操作时间回调实现和原理分析
254 0
|
9月前
|
Linux Android开发
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
测试程序之提供ioctl函数应用操作GPIO适用于Linux/Android
173 0
|
6月前
|
Android开发
Android Stadio Build 窗口字符串乱码问题
在使用Android Studio过程中,如果遇到Build窗口字符串乱码问题,可以通过编辑`studio.vmoptions`文件添加`-Dfile.encoding=UTF-8`配置并重启Android Studio来解决。
211 1
Android Stadio Build 窗口字符串乱码问题
|
8月前
|
XML API 开发工具
Android Bitmap 加载与像素操作
Android Bitmap 加载与像素操作
70 2
|
7月前
|
Android开发
Android kernel 操作gpio
Android kernel 操作gpio
86 0
|
8月前
|
存储 算法 Java
Android 进阶——代码插桩必知必会&ASM7字节码操作
Android 进阶——代码插桩必知必会&ASM7字节码操作
390 0
|
数据库 Android开发 数据库管理
Android使用Room操作SQLite数据库让其变得无比高效和简洁(进一步完善用RecyclerView显示数据库中的数据)
Android使用Room操作SQLite数据库让其变得无比高效和简洁(进一步完善用RecyclerView显示数据库中的数据)
97 0
|
9月前
|
XML Java API
Android 浅度解析:系统框架层修改,编译,推送相关操作
Android 浅度解析:系统框架层修改,编译,推送相关操作
332 0
|
9月前
|
Android开发
[Android]视图的控触操作-MotionEvent
[Android]视图的控触操作-MotionEvent
80 0

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 10
    Android学习自定义View(四)——继承控件(滑动时ListView的Item出现删除按钮)