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中,先判断是否是同一对象,不是则又去判断长度,再去一一比对值,源码很简单,可以去看一下。


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


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