Cracking the coding interview--Q1.5

来源:互联网 发布:云计算的定义是什么 编辑:程序博客网 时间:2024/05/18 02:14

题目

原文:

Write a method to replace all spaces in a string with ‘%20’.

译文:

写一个方法用'%20'代替一个字符串中的所有空格。

解答

方法一:直接用一个String类型的变量将字符串中的非空格字符和‘%20’用加法串起来;

方法二:遍历一次字符串,数出空格数,然后开一个足够大的字符串空间,将字符一个个读进去;

代码如下:

class Q1_5{public static String replaceSpaces(String str){String strTemp="";for(int i=0;i<str.length();i++){if(str.charAt(i)!=' '){strTemp+=str.charAt(i);}else{strTemp+="%20";}}return strTemp;}public static char[] replaceSpaces2(char[] str){int spaceNum=0;int len=str.length;for(int i=0;i<len;i++){if(str[i]==' ')spaceNum++;}char[] arr=new char[len+spaceNum*2];for(int i=0,j=0;i<len;i++){if(str[i]!=' '){arr[j]=str[i];j++;}else{arr[j]='%';arr[j+1]='2';arr[j+2]='0';j+=3;}}return arr;}public static void main(String[] args){String str="i am navy!";char[] str2={'i',' ','a','m',' ','n','a','v','y','!'};System.out.println(replaceSpaces(str));System.out.println(replaceSpaces2(str2));}}

如有更好方法,还望指教!

---EOF---

0 0
原创粉丝点击