如何从字符串中获取非字母分隔符字符

How to get non-alphabetical separator char from string

我有一种情况,我想从给定的字符串中获取分隔符,如下所示:-

String str1 = "saurabh|om|anurag|abhishek|jitendra"

String str2 = "amit,ankur,sumit,aniket,suheel"

String str3 = "aj-kumar-manav-lalit-gaurav"

-------

在上面的字符串中,我想将分隔符字符作为 :-

String separatorStr1 = "|"
String separatorStr2 = ","
String separatorStr3 = "-"

注意 :- 分隔符在字符串中总是非字母顺序

有什么办法可以实现吗

为什么 str3 的分隔符是 -?也可以是a

假设分隔符必须是非字母字符 循环遍历字符并查找第一个非字母字符。

在以后的问题中尽量避免其他用户猜测您的意思 - 尝试定义主题的主题。

根据xenteros的建议,我已经通过以下方式实现了这一点:-

String str1 = "saurabh|om|anurag|abhishek|jitendra"
String str2 = "amit,ankur,sumit,aniket,suheel"
String str3 = "aj-kumar-manav-lalit-gaurav"

String separatorStr1 = str1.toCharArray().find { !Character.isLetterOrDigit(it) }
String separatorStr2 = str2.toCharArray().find { !Character.isLetterOrDigit(it) }
String separatorStr3 = str3.toCharArray().find { !Character.isLetterOrDigit(it) }

assert separatorStr1 == '|'
assert separatorStr2 == ','
assert separatorStr3 == '-'

使用 groovy regexpfind([^\w] 是任何非字母数字字符)

def getSeparator = { str ->
    str.find(~/[^\w]/)
}

String str1 = "saurabh|om|anurag|abhishek|jitendra"
String str2 = "amit,ankur,sumit,aniket,suheel"
String str3 = "aj-kumar-manav-lalit-gaurav"

assert getSeparator(str1) == '|'
assert getSeparator(str2) == ','
assert getSeparator(str3) == '-'