`

替换空格(二)

阅读更多

剑指offer的替换空格 ;

题目描述:把一个字符串中的空格全部替换为20%;

解题思路:①在原来的字符串上面移动,时间复杂度为O(n^2)

                  ②创建新的字符串,便利一遍数组,把所有的空格数计算出来,创建新的数组,时间复杂度为O(n)

 

解法一:

运用Java自带的replace方法:

public String replace(CharSequence target,
                      CharSequence replacement)使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。该替换从字符串的开头朝末尾执行,例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。 

参数:
target - 要被替换的 char 值序列
replacement - char 值的替换序列 
返回:
所得 String 
抛出: 
NullPointerException - 如果 target 或 replacement 为 null。
从以下版本开始: 
1.5 

 代码为:

package offer;

import java.util.Scanner;

/**
 * Created by Taoyongpan on 2017/10/11.
 * 面试题4,替换空格
 * 题目描述:把一个字符串中的空格字符变成20%
 * 方法描述:
 * ①在原来的字符串上面做替换,那么就有可能覆盖修改在该字符后面的字符
 * ②创建新的字符串并在新的字符串上做替换
 */
public class stu04 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
              String s = sc.nextLine();
            //在原来的字符串上面做替换,时间复杂度为O(n^2)
              String s1 = s.replace(" ", "20%");
              System.out.println(s1);
        }
    }
}

 解法二:

代码为:

package offer;

import java.util.Scanner;

/**
 * Created by Taoyongpan on 2017/10/11.
 * 面试题4,替换空格
 * 题目描述:把一个字符串中的空格字符变成20%
 * 方法描述:
 * ①在原来的字符串上面做替换,那么就有可能覆盖修改在该字符后面的字符
 * ②创建新的字符串并在新的字符串上做替换
 */
public class stu04 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()){
            //创建新的字符串,编译一边数组,计算出空格的个数,创建新的字符串,时间复杂度为O(n)
            String string = sc.nextLine();
            char[] newS = string.toCharArray();
            int len = newS.length;
            for (int i = 0 ; i<newS.length;i++){
                    if (newS[i]==' '){
                        len+=2;
                    }
            }
            char[] newS1 = new char[len];
            int newlen = len-1;
            for (int j = newS.length-1 ; j >=0 ;j--){
                if (newS[j] ==' '){
                    newS1[newlen--]='%';
                    newS1[newlen--]='0';
                    newS1[newlen--]='2';
                }else {
                    newS1[newlen--]=newS[j];
                }
            }
            System.out.println(newS1);
        }
    }
}

 注:以前一直沉迷做项目,基础 拉下的比较多,用Java写的算法非常少,遇到一些非常弱智的问题,sc.next()表示的是输入一个字符串,例如“abc”,"abc cd"相当于两此输入,想要输入 一行要使用sc.nextLine();

分享到:
评论

相关推荐

    替换tab键并删除多余空格

    "替换tab键并删除多余空格"这个工具就是针对这个问题设计的,它可以帮助开发者们优化他们的源代码,使其更符合编码规范,提高代码可读性和团队协作效率。这个C语言编写的小程序主要执行以下三类操作: 1. **删除...

    将HTML标签外的空格替换为&nbsp;

    `g`标志表示全局匹配,确保替换所有符合条件的空格。 替换操作对于某些特定场景尤其有用,比如在显示代码片段、诗歌、表格或者任何需要保持原始格式的地方。同时,这也是一种避免用户输入的空格在渲染时丢失的方法...

    替换空格.md

    替换空格.md

    python 实现 替换空格

    python 实现 替换空格

    javascript将字符串中的多个空格替换为一个空格的正则实例.docx

    它接受两个参数,第一个参数是要查找的模式(可以是字符串或正则表达式),第二个参数是要替换为的新值。 - **关于`.prototype`**:在JavaScript中,`prototype`属性用于定义和实现对象的共享属性和方法。在上述示例...

    滤制表符换行符替换为单个空格.rar

    在这个场景中,"滤制表符换行符替换为单个空格.rar" 提供了一个这样的功能,即把源程序中的制表符(\t)和换行符(\n)替换为单个空格符( )。这个过程通常在源代码整理、格式化或文本清理时会用到,以保持代码的...

    用 替换字符串空格(C语言)

    它首先计算原字符串中空格的数量,然后计算出替换空格后的新字符串长度。接着,它创建一个新的字符数组`newStr`,遍历原字符串,将空格替换为指定的字符,并将结果存入新数组。最后,打印出原字符串和替换后的字符串...

    替换空格(简单经典)1

    标题 "替换空格(简单经典)1" 描述了一个编程问题,要求在给定的字符串中将所有空格替换为 "%20"。这个问题常见于处理URL编码,因为URL不支持空格,所以通常用"%20"来表示空格。这是一个在LeetCode等在线编程平台上...

    替换特殊字符撤柜本身加空格

    在探讨“替换特殊字符撤柜本身加空格”的主题时,我们主要关注的是Java编程语言中的`replaceAll`方法,这是处理字符串中特定模式的强大工具。`replaceAll`是`String`类的一个成员方法,用于替换字符串中所有匹配正则...

    vba实现多空格替换为换行符.xltm

    总有些奇葩,不经任何学习,就使用excel文件,...这里给出vba模板,把当前表示换行的多个空格替换为单个换行符。一次运行,会处理sheet所有的单元格中的多余空格。 如果需要针对选中区域的进行替换,请留言,改天再传。

    shell脚本替换文件中的tab为空格,删除空白行(空白行:有空格而没有字符)

    shell脚本替换文件中的tab为空格,删除空白行(空白行:有空格而没有字符)

    PB识别代换字符串中的全角空格为半角空格

    解决PB无法直接识别全角空格问题,特写该函数,将字符串中的全角空格替换为半角空格。

    java基础面试题替换空格

    java基础面试题替换空格本资源系百度网盘分享地址

    python-剑指offer第2题替换空格

    python python_剑指offer第2题替换空格

    Java 替换空格

    在Java编程语言中,处理字符串时经常会遇到需要替换空格的情况。本文主要讲解如何在Java中替换字符串中的空格,并探讨不同方法的性能差异。在Java中,有多种方式可以实现字符串空格的替换,例如使用`String`类的`...

    剑指offer刷题(二)替换空格

    替换空格(python) 题目 请实现一个函数,将一个字符串中的每个空格替换成“ ”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We Are Happy。 思路1(创建新字符串) 创建一个新字符串ss, 遍历原字符串...

    JS正则替换去空格的方法

    本文实例讲述了JS正则替换去空格的方法。分享给大家供大家参考,具体如下: 在网上找了好久,发现没几个是好用的。自己备份一个省得以后再找。 //去左空格; function ltrim(s){ return s.replace( /^/s*/, ""); } ...

    wangrui996#leedcode#0005.替换空格1

    方法2 原地替换 暴力求解最暴力的原地替换解法,也是最容易想到的就是,遍历字符串,遇到空格后就将空格后面所有字符往后移2位,这样加上空格就有3个位置用于替换“%

    C语言的去空格查找替换函数

    自己写来用的,分享一下,可以去字符串的空格(Trim),查找替换字符串(Replace)

    交换空格:用下划线替换空格,反之亦然-matlab开发

    1. **替换空格为下划线**: 可以使用MATLAB的`strrep`函数来完成这个操作。`strrep`函数接受三个参数:原始字符串,要查找的子串,以及要替换的子串。以下代码展示了如何将空格替换为下划线: ```matlab ...

Global site tag (gtag.js) - Google Analytics