View Full Version : تبدیل استک به استرینگ
Neroon
چهارشنبه 31 تیر 1394, 17:06 عصر
سلام دوستان میخوام یه پشته ـرو (Stack) رو به یه رشته تبدیل کنم. اما مشکلی که وجود داره اینه که وقتی از متد toString استفاده میکنم پشته به صورت [0, +, 1] تبدیل به رشته میشه و (با احتساب جای خالی) 9 کاراکتر میشه در حال که من میخوام به صورت 0+1 (سه کاراکتر) ذخیره بشه، آیا متد یا راه حلی برای اینکار وجود داره ؟
محمد فدوی
چهارشنبه 31 تیر 1394, 20:32 عصر
سلام.
سؤالت واضح نیست و بهتر میشد اگه بیشتر توضیح میدادی در موردش... اینجور که من فهمیدم یه پشته از کاراکتر داری و میخوای به رشته تبدیلش کنی.
راه حل سادهست.
Stack<Character> charsStack = new <Character>Stack();
charsStack.addAll(Arrays.asList('1', '+', '0'));
StringBuilder sb = new StringBuilder();
for(char ch : charsStack) {
sb.append(ch);
}
String stackString = sb.toString();
System.out.println(stackString);
اگه جاوا ۸ داری میتونی اینجوری هم بنویسی:
Stack<Character> charsStack = new Stack();
charsStack.addAll(Arrays.asList('1', '+', '0'));
String stackString = charsStack.stream()
.map(String::valueOf)
.collect(Collectors.joining());
System.out.println(stackString);
موفق باشی.
Neroon
چهارشنبه 31 تیر 1394, 21:57 عصر
for(char ch : charsStack)
ممنون دوست عزیز، توضیحاتم مبهم بود ولی شما درست متوجه شدید، کاری که گفتید رو انجام دادم اما تو این خط ارور typemismatch میده و نمیتونه شیء رو به کاراکتر تبدیل کنه.
ویرایش : این مشکل حل شد.
مشکل دیگه ای که هست من ساختار این نوع حلقه رو بلد نیستم و اینکه وقتی با این حلقه پشته تبدیل به کاراکتر میشه آخرین کاراکتر داخل پشته وارد رشته نمیشه
محمد فدوی
چهارشنبه 31 تیر 1394, 22:12 عصر
در مورد ساختار حلقهی for-each این (http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work) رو بخون.
من مشکلی که شما میگی رو ندیدم... نمونه کد بذار ببینیم مشکلش چیه.
Neroon
چهارشنبه 31 تیر 1394, 22:18 عصر
ممنون از لطفتون مشکل حل شد:قلب:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.