بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در تبدیل اعداد تاریخ انگلیسی به فارسی (حل شد)
سلام دوستان
من با متد زیر میتونم اعداد انگلیسی رو به فارسی تبدیل کنم و مشکلی هم ندارم.
static char[] PersianChars = {'٠','١','٢','۳','۴','۵','۶','٧','٨','٩'};
public static String En2Per (String str) { //تبدیل رقم های انگلیسی به رقم فارسی در فونت فارسی
StringBuilder builder = new StringBuilder();
for(int i=0; i<str.length(); i++) {
if(Character.isDigit(str.charAt(i))) {
builder.append(PersianChars[(int)(str.charAt(i))-48]);
} else {
builder.append(str.charAt(i));
}
}
return builder.toString();
}
ولی هر زمان که بخوام تاریخ رو که با اعداد انگلیسی هست رو به فارسی تبدیل کنم جای ماه و روز تغییر میکنه! این مشکل زمانی رخ میده که ماه و روز جز اعداد دهگان باشند. مثلا تاریخ :
1395-06-02
به " 02 - 06 - 1395 " به خوبی تبدیل میشه ولی تاریخ :
1395-11-29
به این شکل 11 - 29 - 1395 تبدیل میشه!
همونجوری که میبینید جای ماه و روز عوض شد چرا؟
+1
0
Split کن مقدار String رو بعد آرایه [] رو که میگیری index های 0 و 1 و 2 رو جدا جدا تغییر بده و دوباره کنار هم بزار (9 سال پیش)
+2
0
الگوریتم درستی هست . آرایه مورد نظر را به درستی مقدار دهی نکردید باید اشکال از کاراکتر هایی باشه که وارد کردین . دوباره مقدار دهی کنید . (9 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
سهرابیان
9 سال پیش
+2
0
الگوریتم شما رو امتحان کردم تا از کامنتی که برای شما درج کردم مطمئن بشم و تنها مشکل الگوریتم شما این بود که آرایه را به درستی مقدار دهی نکردید از method زیر استفاده کنید :
public String numbersEnglishToPersian(String str) {
char[] numbersPersian = {'۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'};
StringBuilder builder = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
if (Character.isDigit(str.charAt(i))) {
builder.append(numbersPersian[(int) (str.charAt(i)) - 48]);
} else {
builder.append(str.charAt(i));
}
}
return builder.toString();
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .