首页 > 试题广场 >

以下代码将打印出 public static void m

[单选题]
以下代码将打印出
 public static void main (String[] args) { 
    String classFile = "com.jd.". replaceAll(".", "/") + "MyClass.class";
    System.out.println(classFile);
}
  • com. jd
  • com/jd/MyClass.class
  • ///////MyClass.class
  • com.jd.MyClass
**
发表于 2019-02-22 16:18:37 回复(0)
更多回答
推荐
C。由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/"。如果想替换的只是".",那么久要写成"\\.".
编辑于 2015-02-06 11:20:47 回复(21)
和我一样掉坑里的点个赞!
发表于 2017-02-14 14:12:34 回复(19)
选C    由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/"。如果想替换的只是".",那么久要写成"\\.". 一开始没看懂
发表于 2016-01-08 10:04:58 回复(24)
方法名都写成 replaceR11,抄的时候要看清楚 @GM
发表于 2017-01-03 17:10:14 回复(0)
应该是9个/
发表于 2016-07-14 10:09:58 回复(2)
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:

1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);

2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;

题目中“.”,在正则表达式中表示任何符号,所以答案是C,五个字母,2个点号,两个空格被代替。

发表于 2015-09-28 23:15:52 回复(2)
其实c也不对,应该是9个/,(5个字母,2个点,2个空格)
发表于 2015-05-13 16:58:06 回复(11)
replaceAll接受的参数是正则表达式,. 在正则表达式中表示任何字符,因此匹配到的每个字符都被替换成 /
发表于 2018-09-02 09:01:45 回复(7)
发表于 2016-07-22 15:04:59 回复(5)
这道题很容易看错,按照常见的replace(xx,yy)去做,实际上考的是replaceAll的用法
replace和replaceAll是JAVA中常用的替换字符的方法,它们的区别是:

1)replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);

2)replaceAll的参数是regex,即基于规则表达式的替换,比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成星号;

题目中“.”,在正则表达式中表示任何符号,所以答案是C,五个字母,2个点号,两个空格被代替。

发表于 2017-03-31 10:41:09 回复(0)
C replaceAll 第一个参数为正则表达式,“.”在正则中表示任何字符,所以都会替换成“/”
发表于 2015-04-29 20:44:25 回复(0)
replaceAll和split遇到正则表达式中的字符时一定要加\\进行转义;由于\也是一个正则表达式的字符所以需要再加一个\转义
发表于 2019-10-31 09:37:20 回复(0)
C.replaceAll (String regex, String replacement)第一个参数是正则表达式,将匹配正则表达式的字符用replacement替换,而.在正则中表示任何字符,所以全部被替换为了/,再把返回的字符串和后面的字符串进行拼接
发表于 2015-08-09 10:44:22 回复(0)
说一下String类的几个方法吧:①.replace(char,char),把字符串里所有的字符进行替换 ②.replace(charseq,charseq),把字符串里所有的字符序列也就是字符串进行替换 ③.replaceAll(String,String),把字符串里所有的字符串进行替换,注意这里第一个参数是正则表达式 ④.replaceFirst(String,String),把字符串里从左至右的第一个字符串进行替换,注意这里第一个参数是正则表达式 ⑤.split(String),把一个字符串分割成字符串数组,参数是正则表达式 ⑥.split(String,int limit),把一个字符串分割成指定大小的字符串数组,参数也是正则表达式。 java中的正则表达式需要两个反斜杠。
编辑于 2019-10-31 18:18:01 回复(0)
感觉答案C中应该是7个"/",上代码:
/**
 * Created by jiangxs on 17-5-16.
 */
public class NowCoder1 {
    public static void main(String[] args) {
        String classFile = "com.jd.".replaceAll(".","/")+"MyClass.class";
        System.out.println(classFile);
    }
}
运行结果是:
///////MyClass.class

Process finished with exit code 0
还有,题目中的“com.jd.”中并没有空格
发表于 2017-05-16 21:47:35 回复(0)
C 正则表达式
发表于 2015-04-09 20:10:27 回复(0)
replaceAll(String regex,String newChar); regex是匹配此字符串的正则表达式,newChar是用来替换每个匹配项的字符串。
发表于 2022-07-14 09:13:23 回复(1)
注意:replaceAll(".","/"),第一个参数为正则表达式,表示任意字符,而不是普通字符串。如果要表示.,则应写为\\.
发表于 2022-02-01 19:57:05 回复(0)
String	replaceAll(String regex, String replacement)
第一个参数会被用作正则表达式
发表于 2020-05-28 21:31:42 回复(0)
\.把正则表达式种的. 转换成普通的. 但是上面的\必须是正则表达式中的转义符。 所以还需要一个正则表达式中的转义符\把一个普通的反斜线\转义成正则表达式中的转义符,所以需要两个反斜线\\.
发表于 2019-11-19 20:00:50 回复(0)
这里考察对replaceAll方法的理解。
replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/"
发表于 2018-10-14 23:36:22 回复(0)