替換空格 牛客網

題目描述
請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。

這題真的超級簡單,我要是用c/c++早就寫完了。可是lsy開始折磨自己了,開始用java刷題,一道這麼簡單的題,硬是浪費了許多時間。因爲不知道方法,還跑去jdk裏面看了源碼,看StringBuffer裏有哪些方法。

看完有哪些方法後發現超級簡單。感覺java白學了一樣~~

代碼

public class Solution {
    public String replaceSpace(StringBuffer str) {
    	for(int i=0;i<str.length();i++)
        {
            if(str.charAt(i)==' ')
            {
                str.deleteCharAt(i);
                str.insert(i,"%20");
            }
        }
        return str.toString();
    }
}

這裏就解釋一下我遇到的問題和這兩個方法的作用吧
一開始我寫的是 if(str[i]==' ') 一直說我編譯不通過。後來發現自己是傻逼,StringBuffer 沒有下標…不是數組…
然後我寫的return str ,str 是StringBuffer類,而這個方法的返回值是String類,所以我不能直接返回str。要將str轉成string類後再返回。

  • public char charAt(int index) 返回char在指定索引在這個序列值。 第一個char值爲索引0 ,下一個索引爲1 ,依此類推,就像數組索引一樣。
  • public StringBuffer deleteCharAt(int index) 將index位置的字符刪除。
  • public StringBuffer insert(int offset,char[] str)在指定位置插入一個字符串

String 和 StringBuffer 的 互相轉換

package demo;
/* String與StringBuffer之間的轉換
 * String -> StringBuffer
 * 方式一:構造方法
 * 方式二:通過append方法
 * StringBuffer -> String
 * 方式一:通過構造方法
 * 方式二:通過toString方法
 * */
public class StringAndStringBufferSwitch {
    public static void main(String[] args) {
        //String -> StringBuffer
        //創建一個String對象
        String str = "Hi Java!";
        System.out.println(str);
 
        //方式一:構造方法
        StringBuffer buffer = new StringBuffer(str);
        System.out.println(buffer);
 
        //方式二:通過append方法
        StringBuffer buffer2 = new StringBuffer();
        buffer2.append(str);
        System.out.println(buffer2);
 
        //StringBuffer -> String
        //創建一個StringBuffer對象
        StringBuffer buffer3 = new StringBuffer();
        buffer3.append("Happy birthday Java!");
        System.out.println(buffer3);
 
        //方式一:通過構造方法
        String str2 = new String(buffer3); 
        System.out.println(str2);
         
        //方式二:通過toString方法
        String str3 = buffer3.toString();
        System.out.println(str3);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章