העתקת מחרוזת ב-Java

בזמן מאוחר יותר שאלו אותי איך להעתיק מחרוזת ב-Java. כפי שאנו יודעים, מחרוזת היא אובייקט String הנמצא במצב לא ניתן לשנות, ולכן ניתן פשוט להקצות מחרוזת אחת למשתנה אחר כדי להעתיק אותה. אם ערך המחרוזת המקורית ישתנה, זה לא ישנה את ערך המחרוזת החדשה בשל יציבותה.

העתקת מחרוזת ב-Java

הנה תוכנית קצרה להעתקת מחרוזת ב-Java כדי להדגיש את ההתנהגות זו.

package com.journaldev.string;

public class JavaStringCopy {

	public static void main(String args[]) {
		String str = "abc";

		String strCopy = str;

		str = "def";
		System.out.println(strCopy); // prints "abc"

	}
}

שים לב שניתן לבצע השמה ישירה של משתנה אחד למשתנה אחר עבור כל אובייקט לא ניתן לשנות. זה לא מוגבל רק לאובייקטים מטיפול במחרוזות. עם זאת, אם ברצונך להעתיק אובייקט משנה למשתנה אחר, עליך לבצע העתק עמוק.

שיטות חלופיות להעתקת מחרוזת ב-Java

ישנן גם פונקציות נוספות שניתן להשתמש בהן להעתקת מחרוזת. אך זה לא פרקטי להשתמש בהן כשניתן להעתיק מחרוזת בצורה בטוחה על ידי אופרטור ההשמה.

  1. שימוש בשיטת String.valueOf()

    String strCopy = String.valueOf(str);
    
    String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //עוד יותר מדי*2
    
  2. שימוש בשיטת String.copyValueOf(), יותר מדי אך עדיין אפשר.

    String strCopy = String.copyValueOf(str.toCharArray());
    
    String strCopy1 = String.copyValueOf(str.toCharArray(), 0, str.length()); //עוד יותר מדי*2 
    

אם ברצונך להעתיק חלק מהמחרוזת למחרוזת אחרת, אז שיטות valueOf ו-copyValueOf יכולות להיות שימות.

Source:
https://www.digitalocean.com/community/tutorials/java-string-copy