View Full Version : سوال: متدی برای سطر سطر کردن کلمات
nima saberi
جمعه 26 تیر 1394, 02:17 صبح
سلاممیخواستم متدی معرفی کنید که یک string (مانند Reza) را جوری تایپ کند که به صورت ذیل نوشته شود.
R
e
z
a
همچنین متدی که بر عکس این عمل را نیز انجام.
با تشکر از انجمن فعالتان
pbm_soy
جمعه 26 تیر 1394, 04:36 صبح
میتوانید رشته موردنظرتان را حرف به حرف در متغییر رشته ای دیگری کپی کنید و بین هر حرف علامت سرخط جدید را هم اضافه کنید مانند کد زیر
String myText = "this is a test";
String myResult="";
for(int i=0;i<myText.length();i++)
myResult = myText.substring(i,1) + "\n";
ویا بصورت زیر بنویسید البته فرق چندانی باهم ندارند
String myText = "this is a test";
String myResult="";
char[] myTextChars = myText.toCharArray();
for(int i=0;i<myText.length();i++)
myResult = myTextChars[i] + "\n";
pbm_soy
جمعه 26 تیر 1394, 04:39 صبح
برعکس قضیه کار ساده ای است هر جا علامت \n باشد را با هیچی جایگذین میکنیم مانند خط زیر
myResult = myResult.replace("\n", "");
ویا اینکه اینجا هم میتوانید مانند پست بالا کاراکتر به کاراکتر به متغییر رشته ای دیگر کپی کنید و در بین کار اگر به علامت \n رسیدید آنرا کپی نکنید
محمد فدوی
جمعه 26 تیر 1394, 10:24 صبح
حذف. به دلیل محتوای تکراری
محمد فدوی
جمعه 26 تیر 1394, 10:25 صبح
سلام.
رشتهها اشیاء Immutable هستن و واسه همین هربار که یه رشته رو به یه رشتهی دیگه اضافه میکنیم (پیوند میزنیم)، رشتهی جدیدی از نو ساخته میشه. به همین دلیل بهتره موقعی که قراره تعداد دفعات زیادی مقدار یه رشته رو تغییر بدیم، از StringBuilder استفاده کنیم. در مورد سؤالی که پرسیده شد، بهتره از این دو متد استفاده بشه تا کارایی بهتری به دست بیاد.
private static String stringToLines(String str) {
char[] chars = str.toCharArray();
StringBuilder sb = new StringBuilder(chars.length * 2 - 1);
for(int i = 0; i < chars.length; i++) {
sb.append(chars[i]);
if(i != chars.length - 1) {
sb.append('\n');
}
}
return sb.toString();
}
private static String linesToString(String lines) {
char[] chars = lines.toCharArray();
StringBuilder sb = new StringBuilder((chars.length + 1) / 2);
for(char c : chars) {
if(c != '\n') {
sb.append(c);
}
}
return sb.toString();
}
خروجی اینه:
String helloLines = stringToLines("Hello");
String hello = linesToString(helloLines);
System.out.println(helloLines);
// OUTPUT:
// H
// e
// l
// l
// o
System.out.println(hello);
// OUTPUT:
// Hello
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.