我需要刪除一些在Java字符串的特定位置的字符。如何在Java中使用字符串的特定位置?
在Java中,C++中是否有相當於std::string.erase()
的東西?如果沒有,有人可以給我一個如何循環每個字符串的快速示例,以便我可以計數它們並獲取每個字符的位置。
我需要刪除一些在Java字符串的特定位置的字符。如何在Java中使用字符串的特定位置?
在Java中,C++中是否有相當於std::string.erase()
的東西?如果沒有,有人可以給我一個如何循環每個字符串的快速示例,以便我可以計數它們並獲取每個字符的位置。
您將無法改變String
對象本身,因爲Strings
是不可變Java中,但是,你可以根據從去除字符生成一個新的String
對象舊String
。
或者,如果你喜歡的東西StringBuilder
/StringBuffer
,因爲這些類提供a delete(start,end)
function
哦,這成爲可能的,因爲你問起一個String
操作字符工作,有length()
方法,讓你的長度String
以及charAt(position)
。
從documentation開始。
有很多很好的方法,將讓你的字符(indexOf
)指數和子(substring
)
看文件在C擦除++後,好像你可以使用2調用substring
模仿那種行爲。您可能希望創建一個StringUtils
類,並根據所需的API實現您自己的擦除。請注意,java中的字符串是不可變的,因此您無法完全複製該行爲 - 對字符串進行更改字符串的每個操作都會返回一個新字符串。
這裏是字符串操作在Java教程:String Manipulation
您也可以看看這個:Java - String Class
由於String
本身是不可變的,沒有瑣碎的方式來做到這一點。
您可以使用substring
構造新的String
:orig.substring(0, index1) + orig.substring(index2)
。
但是,如果反覆做字符串處理,然後StringBuilder
可能會更好,無論是性能和可用性方面的原因:
StringBuilder b = new StringBuilder(orig);
b.replace(index1, index2, "");
StringBuilder
是相當多的可變相當於String
。早期版本使用StringBuffer
,它有完全相同的方法但是同步,通常不需要。
可以使用toCharArray()
方法(http://download.oracle.com/javase/6/docs/api/java/lang/String.html#toCharArray())來計算字符數。
更高級的字符串操作(擦除等..)你應該是一個StringBuilder/StringBuffer(http://download.oracle.com/javase/6/docs/api/java/lang/StringBuffer.html#deleteCharAt(int))
謝謝,很好的答案。 – mgpia