[剑指offer]大可日常打卡-字符串

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部分。

猜你喜欢

转载自blog.csdn.net/hellodake/article/details/81098360