5.替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
public class Solution {
public String replaceSpace(StringBuffer str) {
if(str==null||str.length()==0){
return str.toString();
}
int len=str.length();
StringBuffer res=new StringBuffer();
for(int i=0;i<len;i++){
if(str.charAt(i)!=' '){
res.append(String.valueOf(str.charAt(i)));
continue;
}else{
res.append("%20");
continue;
}
}
return res.toString();
}
}
20.表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
思路:先想想表示数值的字符串的特征。
A[.[B]][e|EC] .B[e|EC]
A是整数部分,B紧跟着小数点为小数部分,C紧跟着e为指数部分。
小数里面也可以没有整数部分,所以A部分不是必须的,如果一个数没有整数部分,那么小数部分不能为空!
A和C都可能是以+或者-开头的0-9的数位串;B也是0-9的数位串,但是B前面不能有正负号。
以123.45e+6为例。
判断一个字符串是否符合上述模式的时候,首先尽可能扫描A部分,遇到小数点就扫描B部分,遇到E|e就扫描C部分。