替换空格java

此前,一直觉得做笔记不重要,好了,我错了,从今起认真做笔记记录渣渣的自己

题目:将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

解答如下:1.将输入的字符串转换为字符数组,此时需要一个方法叫做 toCharArray()

                Scanner in = new Scanner(System.in);
		char[] str = in.nextLine().toCharArray();
		if(str == null || str.length<0){
                    return;
                }

此时当然要确定一下输入的str不是个空的咯(每次输入的,我认为都应该判断一下!)

2.之后便是要计算字符串中有几个空格,以确定加上%20之后的字符串的长度

        int i=0;
        int numberOfBlack = 0;
        for(i=0;i<str.length;i++){
            if(str[i] == ' '){
                numberOfBlack++;
            }
        }
        int oriLength = str.length-1;
        int afterLength = str.length + numberOfBlack*2;

3.在确定afterLength之后,此时我用了另一个数组str1,str1的长度是afterLength,采用从后往前的法子,一个字符一个字符给前走,当str[oriLength]遇着空格时,str1就将‘0’ ‘2’ ‘%’一个一个的赋值;当没有空格时,就使用else中的赋值一次。

之所以用的--afterLength,是因为我定义的str1的长度是afterLength,而数组的最后一个索引为afterLength-1

        char[] str1 = new char[afterLength];
        while(oriLength >= 0) {      //替换空格
        	if(str[oriLength] == ' ') {
        		str1[--afterLength] = '0';
        		str1[--afterLength] = '2';
        		str1[--afterLength] = '%';
        	}
        	else {
        		str1[--afterLength] = str[oriLength];
        	}
        	oriLength--;
        }
        System.out.println(str1);

4.最后打印出来验证是否如题所求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值