面试题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,???我暂时就知道这两种方式,我说的是暂时,我觉得应该没有比正则表达式匹配更好的方式了

posted @ 2018-11-01 20:45  松油灯  阅读(119)  评论(0编辑  收藏  举报