字符串是由若干个字符组成的序列。并且字符串一旦构造后不可改变。
题目
请实现一个函数,把字符串中的每个空格替换成%20,例如输入"we are happy." ,则输出为"we%20are%20happy"。
(这样输入的原因主要是在网络编程中会将空格替换成这样的字符串,替换原则是将特殊符号转换成%+ascii)
package cn.riversky.demo4;
/**
* @author riversky E-mail:riversky@126.com
* @version 创建时间 : 2018/3/11.
*/
public class Client {
/**
* 这里采用数组的特点进行算法的书写,虽然String.replace()可以达到相同的效果,但是这里屏蔽了底层的实现
* 因此这里采用自己的实现进行书写.由于java是的方法全部都是值传递,因此在encodeUrl中进行测试
* @param data
*/
public static void encodeUrl(char[]data){
int kong=0;
int pre=data.length;
for(int i=0;i<data.length;i++){
if(data[i]==' '){
kong++;
}
}
char[] dataNew=new char[pre+kong*2];
for(int j=0;j<pre;j++){
dataNew[j]=data[j];
}
int last=dataNew.length;
last--;pre--;
while (pre>=0&&last>pre){
if(dataNew[pre]==' '){
dataNew[last--]='0';
dataNew[last--]='2';
dataNew[last--]='%';
}else {
dataNew[last--]=dataNew[pre];
}
pre--;
}
System.out.println(dataNew);
data=dataNew;
}
public static void main(String[] args) {
String a="we are happy";
char[]b=a.toCharArray();
System.out.println(b);
encodeUrl(b);
System.out.println(b);
}
}