Cracking the coding interview--Q1.5

题目

原文:

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---

你可能感兴趣的:(Cracking the coding interview--Q1.5)