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

最佳答案

不幸的是,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,则可能需要强制转换。

08-17 21:27