The range of start and end can be 0~length,
[Note]: start (not included) ~ end (included)
For example: helloworld
start: 1 end: 3 means: el needs to be replaced
start:0 end: 3 means: hel needs to be replaced
start: length-2 end: length means: ld needs to be replaced