s.getClass().getName().replaceAll("\\w+\\."+"")是什么意思??
2个回答
展开全部
1.先不看replaceAll()这部分
s是一个对象, s.getClass()是获得这个对象的类,s.getClass().getName()是获得这个对象的类的完整名称(包括包名)。
加入有个类在在名字叫Test1,放在包"test.rel"下面 (即package test.rel;)
那么
Test1 s = new Test1();
System.out.println(s.getClass().getName());
输出结果是:test.rel.Test1
2.repalceAll( )用法是正则表达式用法,你这个里面可能有点问题,应该是replaceAll("\\w+\\.+", ""),意思是把包名过滤掉,只显示类名称:
Test1 s = new Test1();
System.out.println(s.getClass().getName().replaceAll("\\w+\\.+", ""));
输出结果是:Test1
s是一个对象, s.getClass()是获得这个对象的类,s.getClass().getName()是获得这个对象的类的完整名称(包括包名)。
加入有个类在在名字叫Test1,放在包"test.rel"下面 (即package test.rel;)
那么
Test1 s = new Test1();
System.out.println(s.getClass().getName());
输出结果是:test.rel.Test1
2.repalceAll( )用法是正则表达式用法,你这个里面可能有点问题,应该是replaceAll("\\w+\\.+", ""),意思是把包名过滤掉,只显示类名称:
Test1 s = new Test1();
System.out.println(s.getClass().getName().replaceAll("\\w+\\.+", ""));
输出结果是:Test1
追问
我是写错了,格式是这样的replaceAll("\\w+\\.", ""),这个是过滤包名,显示类名的特定用法吗!
追答
\\w+表示任意多个数字或者字母 \\.就表示点号
举个例子,\\w+\\.代表的形式有 1. 222. a. aaa. 1a2z. asd212a. 上面这种情况都会被替换成"",也就是空。
所以test.rel.Test1 前面的test. rel.都会被替换成"",也就是去掉。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询