تم ذكر أهم 10 أسئلة مطروحة حول السلاسل في Java هنا
-
كيفية مقارنة السلاسل؟ ما الذي يجب استخدامه: "
==
" أوequals()
؟باختصار، "
==
" يقارن المراجع بالسلاسل، ولكنهequals()
يقارن القيم الموجودة في تلك السلاسل. إذا كنت لا تريد التحقق من أن السلسلتين هما نفس الكائن، فيجب عليك استخدامequals()
.سيكون من الجيد أيضًا معرفة مفهوم تجمع السلسلة .
-
لماذا تُفضل
char[]
السلاسل (String
) لحماية المعلومات الحساسة؟السلاسل غير قابلة للتغيير . هذا يعني أنه بمجرد إنشاء سلسلة، لن يتم تعديلها حتى يتم تشغيل أداة تجميع البيانات المهملة. في حالة المصفوفة، فمن الواضح تمامًا أنه يمكننا تغيير عناصرها. بهذه الطريقة، لن يتم تخزين المعلومات الحساسة (مثل كلمة المرور) بنص واضح في أي مكان في البرنامج.
-
هل يمكننا تمرير السلاسل كمعلمة عند استخدام عبارة التبديل ؟
نعم، بدءًا من الإصدار 7 من JDK. في السابق، في الإصدار 6، لم يكن هذا ممكنا.
// java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; }
-
كيفية تحويل سلسلة إلى قيمة عددية؟
int n = Integer.parseInt("10");
الأمر نفسه ينطبق على الأنواع البدائية الأخرى في Java.
-
كيفية تقسيم سلسلة إلى خطوط محددة بمسافة؟
أسهل طريقة هي استخدام التعبيرات العادية. تعمل "
\s
" كبديل لأحرف المسافات البيضاء مثل "\t
"،"\r
"،"\n
".String[] strArray = aString.split("\\s+");
-
< ما الذي تفعله الطريقة في الواقع
substring()
؟في JDK 6، أظهرت الطريقة
substring()
جزءًا من الأحرف من سلسلة موجودة، ولكنها لم تقم بإنشاء مثيل منفصل للسلسلة. لإنشاء سلسلة جديدة ممثلة كمصفوفة من الأحرف، يمكنك إضافة بعض السلاسل الفارغة، على سبيل المثال، مثل هذا:str.substring(m, n) + ""
والنتيجة هي مجموعة من الأحرف، وهي السلسلة الجديدة لدينا. يمكن أن يؤدي هذا الأسلوب في بعض الأحيان إلى تقليل وقت تنفيذ التعليمات البرمجية لأن أداة تجميع البيانات المهملة يمكنها تدمير السلاسل الكبيرة غير المستخدمة وتخزين السلاسل الفرعية فقط.
في Oracle JDK 7، تقوم الطريقة
substring()
بإنشاء مصفوفة أحرف جديدة دون استخدام مصفوفة موجودة. يمكنك أيضًا إلقاء نظرة على الرسم البياني الذي يمثل الفرق بين أساليب السلسلة الفرعية () في JDK 6 وJDK 7 . -
سلسلة مقابل StringBuilder مقابل StringBuffer
String
vsStringBuilder
:StringBuilder
قابل للتغيير، مما يعني أنه يمكننا تغيير محتوياته بعد إنشاء الكائن.StringBuilder
vsStringBuffer
:StringBuffer
متزامن، مما يعني أنه يعمل بشكل صحيح عند استخدامه من عدة سلاسل رسائل في نفس الوقت، ولكنه أبطأ منStringBuilder
. -
كيفية تكرار السطر عدة مرات؟
في بايثون، يمكننا ببساطة ضرب سلسلة برقم
n
ثم تكرر العدد n مرات. في Java، يمكننا استخدام طريقةrepeat()
منStringUtils
فئة مكتبة Apache Commons Lang.String str = "abcd"; String repeated = StringUtils.repeat(str,3); //abcdabcdabcd
-
كيفية تحويل سلسلة إلى تاريخ؟
String str = "Sep 17, 2013"; Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str); System.out.println(date); //Tue Sep 17 00:00:00 EDT 2013
-
كيف نحسب عدد مرات ظهور حرف معين في سلسلة؟
استخدم فصلًا دراسيًا
StringUtils
من مكتبة Apache Commons Lang.int n = StringUtils.countMatches("11112222", "1"); System.out.println(n);
GO TO FULL VERSION