# Native Code > برنامه نویسی موبایل > Android Studio >  تبديل عدد به حروف فارسي

## hamed_9192

با سلام
دوستان کسی کد یا کتابخانه ای برای اندروید (جاوا) سراغ داره که بتونه  عدد رو به حروف فارسي تبدیل کرد؟
برای مثال: 1200000  رو تبدیل کنه به یک میلیون و دویست هزار

----------


## Nevercom

/**
 * Created by kok on 12/15/15.
 */
public class NumberToWordsConverter {
    private static String strDigit[][] = {
            {"ده", "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه", "صفر"},
            {"", "ده", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود"},
            {"", "یکصد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد"},
            {"ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده"},
            {"", " هزار", " میلیون", " میلیارد"}
    };
    //    final private static String[] units = {"Zero", "One", "Two", "Three", "Four",
//            "Five", "Six", "Seven", "Eight", "Nine", "Ten",
//            "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen",
//            "Sixteen", "Seventeen", "Eighteen", "Nineteen"};
//    final private static String[] tens = {"", "", "Twenty", "Thirty", "Forty", "Fifty",
//            "Sixty", "Seventy", "Eighty", "Ninety"};


    final private static String strAnd = " و ";


    final private static String[] units = {"صفر", "یک", "دو", "سه", "چهار", "پنج", "شش", "هفت", "هشت", "نه",
            "ده", "یازده", "دوازده", "سیزده", "چهارده", "پانزده", "شانزده", "هفده", "هجده", "نوزده"};
    final private static String[] dahgan = {"", "", "بیست", "سی", "چهل", "پنجاه", "شصت", "هفتاد", "هشتاد", "نود"};


    final private static String[] sadghan = {"", "یکصد", "دویست", "سیصد", "چهارصد", "پانصد", "ششصد", "هفتصد", "هشتصد", "نهصد"};


    final private static String steps[] = {"هزار", "میلیون", "میلیارد", "تریلیون", "کادریلیون", "کوینتریلیون",
            "سکستریلیون", "سپتریلیون", "اکتریلیون", "نونیلیون", "دسیلیون"};


//    billion trillion


    public static String convert(Integer i) {
        //
        if (i < 20) return units[i];
        if (i < 100) return dahgan[i / 10] + ((i % 10 > 0) ? strAnd + convert(i % 10) : "");
        if (i < 1000)
            return sadghan[i / 100]  + ((i % 100 > 0) ? strAnd + convert(i % 100) : "");
        if (i < 1000000)
            return convert(i / 1000) + stepsString(steps[0]) + ((i % 1000 > 0) ? strAnd + convert(i % 1000) : "");
        if (i < 1000000000)
            return convert(i / 1000000) + stepsString(steps[1]) + ((i % 1000000 > 0) ? strAnd + convert(i % 1000000) : "");
        return convert(i / 1000000000) + stepsString(steps[2]) + ((i % 1000000000 > 0) ? strAnd + convert(i % 1000000000) : "");
    }


    private static String stepsString(String step) {
        return " " + step + " ";
    }


}

----------

