同上述字符串截取一样,如果您有编程经验,可跳过此节。不过对于字符串替换功能,Kotlin除了实现Java中的replace()ha函数外,还提供了另外的replaceFirst()、replaceAfter()、replaceBefore()、replaceIndent()、等函数。下面会对这些函数意义进行实例讲解。
3.1、replace()函数replace()函数提供了4个重载函数。他们能实现不同的功能
3.1.1、 replace(oldChar,newChar,ignoreCase = false)其中:
作用 : 把原字符串中的某一个字符全部替换成新的字符。然后返回新的字符串
参数说明:
oldChar: 需要替换的字符
newChar: 新的字符
ignoreCase : 是否引用Java中的replace()函数。默认值为false,即用Java的replace()函数
例:
// 把字符`a`全部替换为`A` val str = "Kotlin is a very good programming language" println(str.replace('a','A'))输出结果为:
Kotlin is A very good progrAmming lAnguAge 3.1.2、 replace(oldValue,newValue,ignoreCase = false)其中:
作用 : 把原字符串中的某一个字符全部替换成新的字符。然后返回新的字符串
参数说明:
oldValue: 需要替换的字符串
newValue: 新的字符串
ignoreCase : 是否引用Java中的replace()函数。默认值为false,即用Java的replace()函数
例:
// 把字符串`Kotlin`替换成字符串`Java` val str = "Kotlin is a very good programming language" println(str.replace("Kotlin","Java"))输出结果为:
Java is a very good programming language 3.1.3、 replace(regex,replacement)其中:
作用 : 根据定义的正则规则去匹配源字符串,把满足规则的字符串替换成新的字符串。
参数说明:
regex: 正则表达式
replacement: 新的字符串
例:
// 正则的规则为检测数字,如果为数字则替换成字符串`kotlin` val str = "1234a kotlin 5678 3 is 4" println(str.replace(Regex("[0-9]+"),"kotlin"))输出结果为:
kotlina kotlin kotlin kotlin is kotlin 3.1.4、replace(regex: Regex, noinline transform: (MatchResult) -> CharSequence)其中:
作用 : 根据定义的正则规则去匹配源字符串,把满足规则的字符串通过transform{}高阶函数映射的新字符串替换。
参数说明:
regex: 正则表达式
transform: 高阶函数
例:
val str = "1234a kotlin 5678 3 is 4" val newStr = str.replace(Regex("[0-9]+"),{ "abcd " })输出结果为:
abcd abcd abcd abcd a kotlin abcd abcd abcd abcd abcd is abcd可以从上述的两个函数中看到两个函数的区别。关于高阶函数、正则表达式的知识点可以先自行看资料理解。小生会在后续的章节中补上相关的内容...
经过上面的replace()函数的讲解。并且对几个重载函数进行了分析。相信大家对replace()函数中的参数都有大致的了解。并且下面的几个函数也是大致相同的操作。故而下面的几个函数操作,我只会举例说明其作用。关于参数的介绍就不作细究了
3.2、replaceFirst()函数作用:把满足条件的第一个字符或字符串替换成新的字符或字符串
例:
val str = "Kotlin is a very good programming language" println(str.replaceFirst('a','A')) println(str.replaceFirst( "Kotlin","Java"))输出结果为:
Kotlin is A very good programming language Java is a very good programming language 3.3、replaceBefore()函数作用:截取满足条件的第一个字符或字符串后面的字符串,包含满足条件字符或字符串自身,并在其前面加上新的字符串。
例:
val str = "Kotlin is a very good programming language" println(str.replaceBefore('a',"AA")) println(str.replaceBefore("Kotlin","Java"))输出结果为:
AAa very good programming language JavaKotlin is a very good programming language 3.4、replaceBeforeLast()函数作用:截取满足条件的最后一个字符或字符串后面的字符串,包含满足条件字符或字符串自身,并在其前面加上新的字符串。
例:
val str = "Kotlin is a very good programming language" println(str.replaceBeforeLast('a',"AA")) println(str.replaceBeforeLast("Kotlin","Java"))输出结果为:
AAage JavaKotlin is a very good programming language 3.5、replaceAfter()函数作用:截取满足条件的第一个字符或字符串前面的字符串,包含满足条件字符或字符串自身,并在其后面加上新的字符串。
例:
val str = "Kotlin is a very good programming language" println(str.replaceAfter('a',"AA")) println(str.replaceAfter("Kotlin","Java"))输出结果为:
Kotlin is aAA KotlinJava 3.6、replaceAfterLast()函数作用:截取满足条件的最后一个字符或字符串前面的字符串,包含满足条件字符或字符串自身,并在其后面加上新的字符串。
例:
val str = "Kotlin is a very good programming language" println(str.replaceAfterLast('a',"AA")) println(str.replaceAfterLast("Kotlin","Java"))输出结果为:
Kotlin is a very good programming languaAA KotlinJava 四、字符串分割