بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

درج جداکننده هزارتایی داخل رشته

مدیریت گفتگو
122982 9 سال پیش
آخرین تغییر: 9 سال پیش

سلام

من یک عدد داخل رشته دارم میخام چک کنم اگه کاراکترهاش سه تا یا شش تا بود یک جداکننده داشته باشه:

1369 = 1،369

15000000 = 15،000،000

1000000000 = 1,000,0000

ممنون کمک کنید البته اینم بگم که من میخام با یک دکمه عدد آخر رو هم پاک کنه یعنی اگه اون کاما یا جداکننده رو یک کاراکتر بدونه هنگام رسیدن به اون اونو به جای عدد اخر حذف میکنه برای این مشکل  چیکار میشه کرد. ممنون

نظرات

Amir 9 سال پیش
باید تبدیلش کنید به String و بعد توی یه حلقه ی for بزاریدش به طوری که از آخر به اول شمارش کنه 'for (int i = str.length; i > 0; i--)' و وقتی سه تا عدد رو شمرد یه کاما پشتش بزاره. یه دستور if هم بزارید که اگه آخرین کلمه بود هیچ کاری نکنه.
Amir 9 سال پیش
for (int i = str.length; i > 0; i--)

پاسخ‌ها 6

122982 9 سال پیش

میشه  واسه سه تا سه تا شمردنش یه کد بگید ممنون

نظرات

مسعود فرمانی 9 سال پیش

از متد استاتیکِ format متعلق به کلاس String استفاده کنید.به این صورت :

 int number = 12345678;
String formattedNumber = String.format("%,d",number);



  1. علامت ',' بعد از '%' نقشِ placeHolder یا همون جانگهدار برای کاراکترِ ',' رو بازی میکنه و کاراکترِ 'd' هم placeHolder ای برای متغیرهای عددی است...

نظرات

k112 9 سال پیش

با سلام , راه که زیاده برای نوشتن کد

 private static String formatNumber(int number) {
StringBuilder str = new StringBuilder();
int index = 0;
while(number>0) {
++index;
str.append(number%10);
number /= 10;
if(index==3) {
str.append(',');
index=0;
}
}
return str.reverse().toString();
}

نظرات

Criss 9 سال پیش

این کد بین هر چهار عدد یک - قرار میده (مورد استفاده برای کارت های بانکی هست)  لینک

 
 String str = edtCard.getText().toString();
str = new StringBuilder(str).insert(str.length() - 4, "-").toString();
str = new StringBuilder(str).insert(str.length() - 9, "-").toString();
str = new StringBuilder(str).insert(str.length() - 14, "-").toString();
edtCard.setText(str);

نظرات

122982 9 سال پیش

من این کد رو استفاده کردم

 int number = 12345678;String formattedNumber = String.format("%,d",number);

حالا مشکلی که هست اینه که وقتی عدد از 1،000،000،000 بالا تر میره برنامه فورس کلوز میکنه و به همین خط اخطار میده فک کردم شاید از int بودنش باشه long کردم باز انداخت بیرون :مهم هم اعدادش نیست تعداد از 10 بالا تر رفت میندازه بیرون...!!!

ممنون میشم کمک کنید.

نظرات

این مشکلی که اشاره کردید ارتباطی به استفاده از این متد نداره و شما میتونید حتی اعداد 100 رقمی رو هم به همین شکل 3 تا 3 تا جدا کنید...حتما جای دیگه ای از برنامه تون ایرادی وجود داره...
hosein 9 سال پیش

از کُد criss جان میشه راحت استفاده کرد که

بدین ترتیب:

 
 String str = "12345678912222232132";
        str = new StringBuilder(str).insert(str.length() - 3, ",").toString();
        str = new StringBuilder(str).insert(str.length() - 7, ",").toString();
        str = new StringBuilder(str).insert(str.length() - 11, ",").toString();
        str = new StringBuilder(str).insert(str.length() - 15, ",").toString();
        str = new StringBuilder(str).insert(str.length() - 19, ",").toString();
        str = new StringBuilder(str).insert(str.length() - 23, ",").toString();
        txt.setText(str);

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .