مترجم من: أهم 10 أسئلة في Java Strings
ببساطة، "==" يختبر ما إذا كانت مراجع السلسلتين متماثلة، ويختبر يساوي () ما إذا كانت قيم السلسلتين متماثلة. إلا إذا كنت تريد التحقق مما إذا كانت السلسلتان هما نفس الكائن، فمن الأفضل استخدام يساوي ().
سيكون من الأفضل أن تعرف آلية ثبات السلسلة.
السلاسل النصية غير قابلة للتغيير، مما يعني أنه بمجرد إنشائها، فإنها تظل هناك حتى يتم تنظيفها بواسطة جامع البيانات المهملة. باستخدام المصفوفة، يمكنك تعديل عناصرها بشكل صريح. بهذه الطريقة، لن تظهر المعلومات الحساسة للأمان (مثل كلمات المرور) في أي مكان آخر على النظام.
بالنسبة لـ Java7 الجواب هو نعم. بدءًا من JDK7، يمكننا استخدام String كشرط لبيان التبديل. قبل JDK6، لم نتمكن من استخدام String كشرط لبيان التبديل.
// java 7 فقط!switch (str.toLowerCase()) { case "a": value = 1; case "b": value = 2;}
int n = Integer.parseInt("10");
بكل بساطة، يتم استخدامه في كثير من الأحيان بحيث يتم تجاهله في بعض الأحيان.
يمكننا ببساطة استخدام التعبيرات العادية لتحليلها. يمثل "/ s" أحرف المسافة البيضاء، مثل " "، و"/t"، و"/r"، و"/n".
String[] strArray = aString.split("//s+");
في JDK6، توفر طريقة substring() نافذة في مصفوفة أحرف تمثل سلسلة موجودة، ولكنها لا تنشئ سلسلة جديدة. لإنشاء سلسلة جديدة ممثلة بمصفوفة أحرف جديدة، أضف سلسلة فارغة كما يلي:
سلسلة فرعية (م، ن) + ""
يؤدي هذا إلى إنشاء مجموعة أحرف جديدة تمامًا تمثل السلسلة الجديدة. أحيانًا تجعل الطريقة المذكورة أعلاه التعليمات البرمجية أسرع، لأن أداة تجميع البيانات المهملة ستجمع سلاسل كبيرة غير مستخدمة وتحتفظ فقط بسلسلة فرعية.
في Oracle JDK 7، تقوم السلسلة الفرعية () بإنشاء مصفوفة أحرف جديدة دون استخدام المصفوفة الموجودة. يوضح الرسم التخطيطي في طريقة السلسلة الفرعية () في JDK 6 وJDK 7 الاختلافات بين السلسلة الفرعية () في JDK 6 وJDK 7.
String vs StringBuilder: StringBuilder قابل للتغيير، مما يعني أنه يمكن للمرء تغيير قيمته بعد الإنشاء.
StringBuilder vs StringBuffer: StringBuffer متزامن، مما يعني أنه آمن لسلسلة الرسائل، ولكنه أبطأ من StringBuilder.
في بايثون، يمكننا تكرار سلسلة عن طريق ضربها برقم. في Java، يمكننا تكرار سلسلة من خلال طريقة Repeat() لفئة StringUtils في حزمة Apache Commons Lang.
سلسلة str = "abcd"؛سلسلة متكررة = StringUtils.repeat(str,3);//abcdabcdabcd
String str = "17 سبتمبر 2013";Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);System.out.println(date);//الثلاثاء 17 سبتمبر 00:00 :00 بتوقيت شرق الولايات المتحدة 2013
استخدم فئة StringUtils من حزمة Apache Commons Lang.
int n = StringUtils.countMatches("11112222", "1");System.out.println(n);
سؤال إضافي: كيفية اكتشاف أن السلسلة تحتوي على أحرف كبيرة فقط
مترجم من: أهم 10 أسئلة في Java Strings