אממ...
הכוונה שלך היא לקחת שתי תתי מחרוזות שקיימות במחרוזת ולהחליף ביניהן? אם יעילות חשובה לך, אז אפשר לבדוק מי מבין המחרוזות היא הקצרה. נניח שאורכה n, ואורכה של הארוכה m. אפשר להחליף במקום את n התוים הראשונים של שתי המחרוזות. לאחר מכן להוציא את m-n התוים הנותרים של הארוכה, ולדחוף אותם במקום המתאים לאחר התוים שהחלפת. אני אתן לך דוגמא. נניח ויש לי את החרוזת:
Hello and wellcome to my cool apartment.
אני רוצה להחליף את cool ואת wellcome. אורכה של הקצרה הוא 4 ושל הארוכה הוא 8. אז אנו נחליף במקום את 4 התוים הראשונים של שתי המחרוזות ונקבל:
Hello and coolcome to my well apartment.
אחר כך נצטרך להוציא את 4 התוים הנותרים של wellcome (שהם "come") שעדיין לא העברנו אותם ולשים אותם במקום המתאים. התהליך מתואר כאן:
Hello and coolcome to my well apartment. Hello and coolome to my wellc apartment. Hello and coolme to my wellco apartment. Hello and coole to my wellcom apartment. Hello and cool to my wellcome apartment.
אם משתמשים ב-API של המחלקה string, אפשר למיטב ידיעתי לבצע את זה על ידי שתי קריאות פשוטות למתודות של המחלקה בלי להעביר תו תו, אלא להעביר מחרוזת שלמה.