剑指offer - 面试题4:替换空格
发布日期:2021-06-30 19:50:13 浏览次数:2 分类:技术文章

本文共 1640 字,大约阅读时间需要 5 分钟。

问题导读:

输入一个带有空格的字符串,将字符串中的空格替换为 20%

代码:

import java.util.Scanner;public class interview_4 {    private static int counter = 0;    private static char []ch = new char[32];    public static void main(String []args) {        Scanner cin = new Scanner(System.in);        /*         *先用scanner 读取字符串,在存到char数组中         */        String str = cin.nextLine();        for(int j = 0; j < str.length(); j++) {            ch[j] = str.charAt(j);        }        //得到有效字符串长度和空格数量        int lengthOfOriginal = 0;        int i = 0;        while(ch[i] != 0) {            lengthOfOriginal++;            if(ch[i] == ' ') {                counter++;            }            i++;        }         /*         * 定义两个指针,分别指向新字符串尾部和原始字符串尾部         * 从后向前替换         */        int indexOfOriginal = lengthOfOriginal;        int newLength = counter*2 + lengthOfOriginal;         int indexOfNew = newLength;        while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal) {            if(ch[indexOfOriginal] != ' ') {                ch[indexOfNew--] = ch[indexOfOriginal--];            } else {                ch[indexOfNew--] = '%';                ch[indexOfNew--] = '0';                ch[indexOfNew--] = '2';                indexOfOriginal--;            }        }        for(int j = 0; j < newLength; j++) {            System.out.print(ch[j]);        }    }}

测试:

peerslee@peerslee-ubuntu:~/ws/java/offer/4$ java interview_4 Gun N Rose !Gun20%N20%Rose20%!peerslee@peerslee-ubuntu:~/ws/java/offer/4$ java interview_4 Hello PeersLee!Hello20%PeersLee!peerslee@peerslee-ubuntu:~/ws/java/offer/4$ java interview_4 OfferOfferpeerslee@peerslee-ubuntu:~/ws/java/offer/4$

转载地址:https://lipenglin.blog.csdn.net/article/details/52513619 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java - 字符串常用类、方法小结
下一篇:剑指offer - 面试题3:二维数组中的查找

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月30日 20时19分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章