我有一个字符串
abc.xyz.qweweer.cccc
这实际上是一个Java包名。
我试图找出使用reg exp的最后一个字符串,在上面的例子中cccc
是最后一个字符串。
基本上我试图从包字符串中找出类名。
如何通过Java找到
答案 0 :(得分:2)
给定字符串pkg = "abc.xyz.qweweer.cccc"
,您可以这样解决:
使用indexOf
:
int index = pkg.lastIndexOf('.');
String lastPart = index == -1 ? pkg : pkg.substring(index + 1);
使用Matcher
的正则表达式:
Matcher m = Pattern.compile("[^.]*$").matcher(pkg);
String lastPart = m.find() ? m.group() : null;
使用split
(RMT答案的变体):
String[] names = pkg.split("\\.");
String lastPart = names[names.length - 1];
答案 1 :(得分:1)
为什么不拆分“。”
String[] names = packageName.split(".");
String className = names[names.length-1];
答案 2 :(得分:0)
String packageName = ...
Matcher m = Pattern.compile("[a-zA-Z]+$").matcher(packageName);
if (m.find()) {
m.group(); // your match
}
你也可以尝试一种不那么冗长的方法:
String result = packageName.replaceAll(".*\\.", "");
答案 3 :(得分:0)
您可以使用Apache StringUtils substringAfterLast。
StringUtils.substringAfterLast("abc.xyz.qweweer.cccc", ".")
这不需要正则表达式。
答案 4 :(得分:0)
你真的想使用正则表达式吗?您可以执行str.substring (str.lastIndexOf (".") + 1)
来获取类名。