首页 > 解决方案 > 通过 Charset 确定一个特殊字符

问题描述

我想检查我的角色是否是特殊符号或不使用标准 Charset(目前,我已经通过 regex 检查实现了它[^a-zA-Z0-9 ])。是否可以通过 Java 或 Kotlin 中的 Charset 类进行检查?

标签: javaandroidkotlin

解决方案


不幸的是,Java 上没有定义专门的函数Charset来确定它是否包含特殊字符。

使用正则表达式完全没问题,但你也可以这样做:

fun Char.isSpecialChar() = toLowerCase() !in 'a'..'z' && !isDigit() && !isWhitespace()

fun CharSequence.containsSpecialChars() = any(Char::isSpecialChar)

'H'.isSpecialChar() // false
'&'.isSpecialChar() // true
"Hello World".containsSpecialChars() // false
"Hello & Goodbye".containsSpecialChars() // true

这是一个 Kotlin 解决方案,因此如果您有 Java,则Charset可能需要进行一些转换。


推荐阅读