面试题2
题目:"去掉以下字符串中的空格数量以及特殊字符,并返回新字符串中“b”的位置"
String str = " b a fe sfad fad #¥#¥ fk2";
我当时是用循环做的,但是我是真的觉得可以用String类里面提供的一些方法做,可以我当时记不起来,虽然我一直觉得学习的是方法,而不是去学习某个题。
这里的话,只说思路就好了。
1,用循环遍历这个字符串,只要遇到是字符或者数字的,那就添加到新的字符串里面去,最后用indexOf("b")来返回“b”在新字符串中的下标
2,在String这个类里面有个方法组是replace,有这类型的方法多个。其中有个就是st.replaceAll("a","b"),这里的表示的意思就是将st字符串中的“a”字符串全部替换成“b”字符串
利用这个方法,其实就可以将str字符串中的“ ”空格全部替换成“”空字符串.!!其实st.replaceAll("a",''b'')的参数a这里就是一个正则表达式!
这里很关键哟!!!一定得注意了,这个第一个参数正则表达式给我们带来了极大的好处,那就是可以一句话完成题目的要求,请看下面
String st = str.replace("[^0-9a-zA-Z]","");这里的第一个参数就是填写的正则表达式,^这个表示的意思就是非,就是不满足后面的范围的,[]中括号表示的本身就是一个字符
3,???我暂时就知道这两种方式,我说的是暂时,我觉得应该没有比正则表达式匹配更好的方式了