10 سوال برتر در مورد رشته ها در جاوا در اینجا ذکر شده است
-
چگونه رشته ها را با هم مقایسه کنیم؟ چه چیزی استفاده شود: "
==
" یاequals()
؟به طور خلاصه، "
==
" مراجع را با رشته ها مقایسه می کند، اماequals()
مقادیر موجود در آن رشته ها را مقایسه می کند. اگر نمی خواهید بررسی کنید که دو رشته یک شی هستند، باید ازequals()
.همچنین ایده خوبی است که مفهوم استخر رشته ای را بدانید .
-
چرا
char[]
رشته های (String
) برای محافظت از اطلاعات حساس ترجیح داده می شوند؟رشته ها تغییر ناپذیر هستند . این بدان معنی است که هنگامی که یک رشته ایجاد می شود، تا زمانی که زباله جمع کننده اجرا نشود، تغییر نخواهد کرد. در مورد یک آرایه، کاملاً واضح است که می توانیم عناصر آن را تغییر دهیم. به این ترتیب اطلاعات حساس (مانند رمز عبور) به صورت متن واضح در هیچ کجای برنامه ذخیره نخواهد شد.
-
آیا هنگام استفاده از دستور switch می توانیم رشته ها را به عنوان پارامتر ارسال کنیم ؟
بله، از نسخه 7 JDK شروع می شود. قبلا در نسخه 6 این امکان وجود نداشت.
// java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; }
-
چگونه یک رشته را به عدد صحیح تبدیل کنیم؟
int n = Integer.parseInt("10");
همین امر در مورد سایر انواع اولیه در جاوا نیز صدق می کند.
-
چگونه می توان یک رشته را به خطوط جدا شده از فضا تقسیم کرد؟
ساده ترین راه استفاده از عبارات منظم است. "
\s
" به عنوان جایگزینی برای کاراکترهای فضای خالی مانند "\t
"، "\r
"، "\n
" عمل می کند.String[] strArray = aString.split("\\s+");
-
< این روش در واقع چه کاری انجام می دهد
substring()
؟در JDK 6، این روش
substring()
بخشی از کاراکترهای یک رشته موجود را نشان میدهد، اما نمونه جداگانهای از رشته ایجاد نمیکند. برای ایجاد یک رشته جدید که به صورت آرایه ای از کاراکترها نمایش داده می شود، می توانید تعدادی رشته خالی اضافه کنید، به عنوان مثال، مانند این:str.substring(m, n) + ""
نتیجه آرایه ای از کاراکترها است که رشته جدید ما است. این رویکرد گاهی اوقات می تواند زمان اجرای کد را کاهش دهد زیرا جمع کننده زباله می تواند رشته های بزرگ استفاده نشده را از بین ببرد و فقط رشته های فرعی را ذخیره کند.
در Oracle JDK 7، این روش
substring()
یک آرایه کاراکتر جدید را بدون استفاده از آرایه موجود ایجاد می کند. همچنین می توانید نگاهی به نموداری بیندازید که تفاوت بین متدهای substring() را در JDK 6 و JDK 7 نشان می دهد . -
String در مقابل StringBuilder در مقابل StringBuffer
String
vsStringBuilder
:StringBuilder
mutable، به این معنی که می توانیم محتوای آن را بعد از ایجاد شی تغییر دهیم.StringBuilder
vsStringBuffer
:StringBuffer
همزمان، به این معنی که وقتی از چندین رشته به طور همزمان استفاده می شود، به درستی عمل می کند، اما کندتر ازStringBuilder
. -
چگونه یک خط را چندین بار تکرار کنیم؟
در پایتون به سادگی می توانیم یک رشته را در یک عدد ضرب کنیم
n
و سپس n بار تکرار شود. در جاوا می توانیم از روشی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