我想要替換字符串中的一個字符(位),這是一個二進制數。對於位替換,我設計了一種方法,它使用string.substring()
方法簡單地對字符串進行分區,然後連接所有索引。下面是方法 -字符替換需要非常多的時間在一個字符串
/*
*Method will replace the index-th bit with bitToInsert in the given str
*/
String str = "11000110100110011111";
int index = 5;
int bitToInsert = 0;
if (index == 0) {
str = str.substring(0, str.length() - 1) + bitToInsert;
} else {
str = str.substring(0, str.length() - index - 1) + bitToInsert + str.substring(str.length() - index);
}
這工作正常,但是這需要很長時間來替換一個位,當給定的str是非常大的。有沒有其他方法,以便比上述方法更少的時間內完成任何位的替換?
如果比特串只會由一個線程訪問,使用StringBuilder而不是StringBuffer會更快,因爲它避免了不需要的同步。 – matts 2012-03-23 15:17:47
好的提示。 OP表示認爲。 – 2012-03-23 15:21:42