2013-05-16 42 views
4

我有一個StringBuilder並希望對字符使用replace方法。 下面給出的代碼在StringBuilder中替換字符

StringBuilder sb = new StringBuilder(); 
sb.append("01-02-2013"); 

如何將' - '替換爲'/'?

+0

你可以簡單地使用['toString()。replace(「 - 」,「/")'](http://docs.oracle.com/javase/7/docs/api/java/lang/String。 html#替換%28java.lang.CharSequence,%20java.lang.CharSequence%29) – MadProgrammer

+0

http://stackoverflow.com/questions/3472663/replace-all-occurences-of-a-string-using-stringbuilder – Habib

+0

檢查此方法http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html#setCharAt(int,char) –

回答

9

如果不想在StringBuilder轉換爲String或喲u需要使用它/保存它保持,那麼你可以做這樣的事情...

for (int index = 0; index < sb.length(); index++) { 
    if (sb.charAt(index) == '-') { 
     sb.setCharAt(index, '/'); 
    } 
} 

如果你不那麼在意你可以做這樣的事情......

String value = sb.toString().replace("-", "/"); 
+0

請注意替換(CharSequence,CharSequence)與String.replace(char,char),第二種形式當然更快,因爲它是直接替換而不是替換模式 - 如果您查看每個源代碼形式你會看到我在說什麼。 –

1

嘗試將字符直接替換爲字符串本身。

sb.append(("blah-blah").replace('-', '_')); 

將輸出

blah_blah 
+0

StringBuilder沒有替換(char,char)函數 – sanbhat

+0

我已經測試過了,它工作正常。 sb = StringBuilder,而不是StringBuffer。 – Rogue

+0

抱歉抱歉。 – sanbhat

6

嘗試這種方式

StringBuilder sb = new StringBuilder(); 
      sb.append("01-02-2013"); 

      sb.replace(sb.indexOf("-"), sb.indexOf("-")+1, "/") ; 
      sb.replace(sb.indexOf("-"), sb.indexOf("-")+1, "/") ; 
      System.out.println(sb.toString()); 

更好的計算策略是

sb.toString().replaceAll("-", "/"); 
+0

索引是硬編碼 –

+0

不'replaceAll'取'regex'?我認爲它應該是'替換'的方法。 –

1

你本應該對此進行一點搜索。

無論如何,當開始在java中編程時,最好的方法是瞭解你可以用java內置對象做什麼,就是去這個類的javadoc,在那裏你會知道很多東西。

在你的情況,你會發現你的答案在這裏:StringBuilder javadoc

使用replace方法。