將一個字串中的空格替換為“ ”(java)
阿新 • • 發佈:2019-02-04
設計一種方法,將一個字串中的所有空格替換成 %20
。你可以假設該字串有足夠的空間來加入新的字元,且你得到的是“真實的”字元長度。
你的程式還需要返回被替換後的字串的長度。
//將一個字串中的空格替換為"%20" import java.util.*; public class Solution { /** * @param string: An array of Char * @param length: The true length of the string * @return: The true length of new string */ public static int replaceBlank(char[] string, int length) { int num=0;//konggeshu int i=0; while(i<length){ if(string[i]==' '){ num++; } i++; } int newnum=length+2*num; char []ch2=new char[newnum]; int j=0; for(i=0;i<length;i++){ if(string[i]!=' '){ ch2[j++]=string[i]; }else{ ch2[j++]='%'; ch2[j++]='2'; ch2[j++]='0'; } } /* string=Arrays.copyOf(string,length+2*num); i=0; while(i<length+2*num){ string[i]=ch2[i]; i++; } */ int t=0; while(t<newnum){ string[t]=ch2[t]; t++; } // System.out.println(string); return length+2*num; } public static void main(String []args){ String str="hello world"; char []ch=new char[100]; char []ch1=str.toCharArray();//toCharArray()函式會返回一個新的陣列, //因此就算原陣列定義了長度,返回的新陣列會取代它 int i=0; while(i<ch1.length){ ch[i]=ch1[i]; i++; } int k=replaceBlank(ch,ch1.length); System.out.println(k); System.out.println(ch); } }
注:
1、string=Arrays.copyOf(string,length+2*num);
該函式將原來的陣列內容複製到一個新分配的數值組中,雖然還是原來的陣列引用,但該引用所指向的已經是一個新的陣列了。之後對string進行改變,原來的陣列並不會改變。
2、char []ch=new char[100];
char []ch1=str.toCharArray();
toCharArray()函式會返回一個新的陣列,因此就算原陣列定義了長度,返回的新陣列會取代它