题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。
输入实例
We Are Happy
输出实例
We%20Are%20Happy
源代码
用户自定义方法实现。
package experie;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Solution main01=new Solution();
Scanner sc=new Scanner(System.in);
String str1=sc.nextLine();
//str为位用户输入的字符串
System.out.println("用户输入的字符串为:"+str1);
String str=main01.replaceSpace(new StringBuffer(str1));
System.out.println("经过替换函数替换后的字符串为:"+str);
}
public String replaceSpace(StringBuffer str) {
if(str==null || str.length()<0){
return null;
}
//求字符串的实际长度和空格的数目
int oldStrNum; //记录原字符串的长度
int blanckNum=0; //空格的数量
int i=0;
//便利原先的字符串 找出字符串的长度以及其中的空格的数量
for (oldStrNum=0; oldStrNum<str.length(); oldStrNum++){
//charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。
if(str.charAt(oldStrNum)==' '){
blanckNum++;
}
}
//新字符串的长度
int newStrNum=oldStrNum+2*blanckNum;
//设置两个指针oldStrIndex和newStrIndex分别指向原字符串和新字符串的末尾位置
int oldStrIndex =oldStrNum-1;
int newStrIndex=newStrNum-1;
//因为'\0'已经手工加到最后新串的最后一个字符,所以减1咯
char newCharArr[]=new char[newStrNum];
while(oldStrIndex>=0){
if(str.charAt(oldStrIndex)==' '){
newCharArr[newStrIndex--]='0';
newCharArr[newStrIndex--]='2';
newCharArr[newStrIndex--]='%';
}else{
newCharArr[newStrIndex--]=str.charAt(oldStrIndex);
}
oldStrIndex--;
}
String newStr=String.valueOf(newCharArr);
return newStr;
}
}
JString类Java自带方法实现。
package knowledge;
import java.util.Scanner;
public class Tihuan {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str1=sc.nextLine();
System.out.println(str1);
String str2=str1.replaceAll(" ", "%20");
System.out.println(str2+str2.length());
}
}
以上两种方法均能够实现空格替换的功能。
代码运行截图如下: