我有一种情况,我想从给定的字符串中获取分隔符char,如下所示: -
String str1 = "saurabh|om|anurag|abhishek|jitendra"
String str2 = "amit,ankur,sumit,aniket,suheel"
String str3 = "aj-kumar-manav-lalit-gaurav"
-------
在上面的字符串中,我希望将分隔符char作为: -
String separatorStr1 = "|"
String separatorStr2 = ","
String separatorStr3 = "-"
注意: - 分隔符字符串在字符串中始终为非字母
有没有办法实现这一目标。
答案 0 :(得分:3)
使用groovy
regexp
和find
([^ \ 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) == '-'
答案 1 :(得分:1)
为什么-
的{{1}}分隔符?它也可以是str3
。
假设分隔符必须是非字母循环字符,并查找第一个非字母字符。
在未来的问题中,尽量避免其他用户猜测你的意思 - 尝试定义主题的主题。
答案 2 :(得分:1)
按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 == '-'