درج جداکننده هزارتایی داخل رشته
سلام
من یک عدد داخل رشته دارم میخام چک کنم اگه کاراکترهاش سه تا یا شش تا بود یک جداکننده داشته باشه:
1369 = 1،369
15000000 = 15،000،000
1000000000 = 1,000,0000
ممنون کمک کنید البته اینم بگم که من میخام با یک دکمه عدد آخر رو هم پاک کنه یعنی اگه اون کاما یا جداکننده رو یک کاراکتر بدونه هنگام رسیدن به اون اونو به جای عدد اخر حذف میکنه برای این مشکل چیکار میشه کرد. ممنون
از متد استاتیکِ format متعلق به کلاس String استفاده کنید.به این صورت :
int number = 12345678;
String formattedNumber = String.format("%,d",number);
-
علامت ',' بعد از '%' نقشِ placeHolder یا همون جانگهدار برای کاراکترِ ',' رو بازی میکنه و کاراکترِ 'd' هم placeHolder ای برای متغیرهای عددی است...
با سلام , راه که زیاده برای نوشتن کد
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();
}
این کد بین هر چهار عدد یک - قرار میده (مورد استفاده برای کارت های بانکی هست) لینک
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);
من این کد رو استفاده کردم
int number = 12345678;String formattedNumber = String.format("%,d",number);
حالا مشکلی که هست اینه که وقتی عدد از 1،000،000،000 بالا تر میره برنامه فورس کلوز میکنه و به همین خط اخطار میده فک کردم شاید از int بودنش باشه long کردم باز انداخت بیرون :مهم هم اعدادش نیست تعداد از 10 بالا تر رفت میندازه بیرون...!!!
ممنون میشم کمک کنید.
از کُد 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);
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
for (int i = str.length; i > 0; i--)(9 سال پیش)