问题:有一段字符串” ab sa fja “,两边和字符串中间有若干长度未知的空格符,需要将两端的去掉,中间的只保留一个空白符。
——京东面试题
简单思路:
思路一:使用正则表达式来匹配出多个空格,从而分割字符串,然后拼接即可。
思路二:使用正则表达式来判断首尾情况(或trim),再使用replaceAll(Java)等系统函数来替换。
代码如下:
int len=str.length();
if(len==0) return "";
Pattern pattern = Pattern.compile("\\s+");
String[] arr=pattern.split(str);
String re="";
for(String i:arr)
if(!i.equals("")) re=re+i+" ";
return re.substring(0,re.length()-1);
INPUT “ a b ”
OUTPUT “a b”
主要要注意字符串前面有若干空白字符的情况即可。
注意split分割时会出现""
的情况,如官网中示例:
输入”boo:and:foo”
Regex | Result |
---|---|
o | { “b”, “”, “:and:f” } |