منذ فترة طويلة، سئلت كيفية نسخ سلسلة في جافا. كما نعلم أن سلسلة هي كائن غير قابل للتغيير، لذلك يمكننا فقط تعيين سلسلة واحدة إلى أخرى لنسخها. إذا تغيرت قيمة السلسلة الأصلية، فإنها لن تؤثر على قيمة السلسلة الجديدة بسبب عدم قابلية التغيير.
نسخ سلسلة في جافا
فيما يلي برنامج قصير لنسخ سلسلة في جافا لعرض هذا السلوك.
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"
}
}
يرجى ملاحظة أنه يمكننا تنفيذ تعيين مباشر لمتغير آخر لأي كائن غير قابل للتغيير. وهذا ليس محدودًا لكائنات السلاسل فقط. ومع ذلك، إذا كنت ترغب في نسخ كائن قابل للتغيير إلى متغير آخر، فيجب عليك تنفيذ نسخ عميق.
طرق بديلة لنسخ السلاسل في جافا
هناك بعض الدوال التي يمكن استخدامها لنسخ السلاسل. ومع ذلك، فإن استخدامها غير عملي عندما يمكنك نسخ السلسلة بأمان باستخدام عامل التعيين.
-
استخدام طريقة
String.valueOf()
String strCopy = String.valueOf(str); String strCopy1 = String.valueOf(str.toCharArray(), 0, str.length()); //زيادة الإفراط*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