1.4---字符串空格变成20%(CC150)

import CtCILibrary.AssortedMethods;

public class Question {
    // Assume string has sufficient free space at the end
    public static void replaceSpaces(char[] str, int length) {
        int spaceCount = 0, index, i = 0;
        for (i = 0; i < length; i++) {
            if (str[i] == ‘ ‘) {
                spaceCount++;
            }
        }
        index = length + spaceCount * 2;
        str[index] = ‘\0‘;
        for (i = length - 1; i >= 0; i--) {
            if (str[i] == ‘ ‘) {
                str[index - 1] = ‘0‘;
                str[index - 2] = ‘2‘;
                str[index - 3] = ‘%‘;
                index = index - 3;
            } else {
                str[index - 1] = str[i];
                index--;
            }
        }
    }

    public static void main(String[] args) {
        String str = "abc d e f";
        char[] arr = new char[str.length() + 3 * 2 + 1];
        for (int i = 0; i < str.length(); i++) {
            arr[i] = str.charAt(i);
        }
        replaceSpaces(arr, str.length());
        System.out.println("\"" + AssortedMethods.charArrayToString(arr) + "\"");
    }
}
时间: 2024-12-05 02:24:33

1.4---字符串空格变成20%(CC150)的相关文章

字符串空格替换、合法括号序列判断、求最长无重复子串问题

一:字符串空格替换 将字符串中的空格全部替换为"%20".假定该字符串后面有足够的空间存放新增的字符. 如:Mr John Smith->Mr%20John 陷阱:Java玩家可能第一时间想到用split(" ")分割原字符串,然后重新拼接的时候在词间添加"%20".这种思路的不完善之处在于:如果原字符串以空格结尾.或者单词之间不止一个空格,则会导致拼接出来的字符串不符合要求. 解法:该题说明原字符串后面有足够空间(Java玩家可忽略,因为

10-4. 字符串循环左移(20)

输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整数N. 输出格式: 在一行中输出循环左移N次后的字符串. 输入样例: Hello World! 2 输出样例: llo World!He 1 #include <stdio.h> 2 #include <string.h> 3 4 int main() 5 { 6 char str[101]; 7 int t; 8 gets

字符串-05. 字符串循环左移(20)

输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整数N. 输出格式: 在一行中输出循环左移N次后的字符串. 输入样例: Hello World! 2 输出样例: llo World!He import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(St

windows中java读目录空格变成%20 处理方法

URL url = Thread.currentThread().getContextClassLoader().getResource(""); String path = url.getPath(); System.out.print(path); 打印输出: path = URLDecoder.decode(path, "utf-8"); System.out.print(path); 打印输出: 总结:java读目录空格变成%20 处理方法,使用utf-8字

java中去掉字符串空格

去掉字符串空格 在读取配置文件是termiBrand=CMDC`01|Huawei Technologies Co., Ltd`05 这里面的值无法或数据库里面查询出来的值进行对比判断,需要将字符串的空格去掉然后在进行判断 str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格,包括首尾.中间 str.replaceAll(" ", ""); //去掉所有空格,包括首尾.中间 //

【算法】将一个字符串的空格用%20来代替

题目:给定一个字符串,将字符串里的所有空格替换成%20. 注意:空格替换成%20,是将1个字符变成3个字符,注意指针的移动个数. #include <stdio.h> #include <string.h> #include <stdlib.h> int length(char *p) { int blank = 0; for(;(*p)!='\0';p++) for(;(*p)==' ';p++) blank++; return blank ;  } int main

将字符串中的空格变成%20如“we are happy ”变成“we%20are%20happy”

分析: 将字符串中的空格替换成三个字符'%','2','0': 一.创建另一个数组就太简单了,将字符串str的内容复制到新的数组中,当遇到' '时就将输出%20:如果没有空格就将原字符串中的字符复制过来就好了: 二.计算出字符串中的空格数,然后将代替后的字符串长度算出来,因为代替时会将原字符串中的字符覆盖掉,因此我们应该遍历时遇到空格就将它后面的字符向后移两位,这样就可以将%20放进去,但是由于每次遇到空格都向后移一次,那么就没有效率,因此我们可以将最后一个字符一次移到最后. 步骤是这样的: 算

用指定字符串(如%20)替换空格 时间复杂度为O(n)

#include <iostream>#include <string>using namespace std;void ReplaceBlank(char* destr, const char* sostr, int sLen); int main(){ string sostr = ""; getline(cin, sostr); int len = sostr.length(); int blanLen = 0; for (int i=0; i<le

字符串 空格替换

题目描述 请编写一个方法,将字符串中的空格全部替换为“%20”.假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成. 给定一个string iniString 为原始的串,以及串的长度 int len, 返回替换后的string. 测试样例: “Mr John Smith” 13 返回:“Mr%20John%20Smith”   “Hello World”,12 返回:“Hello%20%20World”   C++风格解法