Created
December 30, 2016 19:07
-
-
Save egcodes/1f1f5eeaf5700722ad96920bb9db129a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package egcodes; | |
import java.util.ArrayList; | |
import java.util.Arrays; | |
import java.util.Collections; | |
import java.util.List; | |
/** | |
* @author egcodes | |
*/ | |
public class Main { | |
static List<String> birlik = Arrays.asList("", "bir", "iki", "uc", "dort", "bes", "alti", "yedi", "sekiz", "dokuz"); | |
static List<String> onluk = Arrays.asList("", "on", "yirmi", "otuz", "kırk", "elli", "altmis", "yetmis", "seksen", "doksan"); | |
static List<String> diger = Arrays.asList("yuz", "bin", "milyon", "milyar"); | |
public static void main(String[] args) { | |
printString(2124522345); | |
printString(1124522345); | |
printString(1224522345); | |
printString(205420345); | |
printString(20250345); | |
printString(1050345); | |
printString(1000345); | |
printString(1010005); | |
printString(20345); | |
printString(20341); | |
printString(2000000000); | |
printString(2000000001); | |
printString(2000000010); | |
printString(2000000100); | |
printString(2000001000); | |
printString(2000101000); | |
printString(2001001000); | |
printString(2100001000); | |
printString(2010001000); | |
printString(100001); | |
printString(100011); | |
printString(100100); | |
printString(110001); | |
printString(10001); | |
printString(11001); | |
printString(10011); | |
printString(10101); | |
printString(2001); | |
printString(1001); | |
printString(1010); | |
printString(1101); | |
printString(1011); | |
printString(1000); | |
printString(999); | |
printString(100); | |
printString(110); | |
printString(101); | |
printString(200); | |
printString(15); | |
printString(11); | |
printString(10); | |
printString(9); | |
} | |
public static void printString(int val) { | |
String valStr = String.valueOf(val); | |
//Ucerli basamaklara ayirma ve bir listeye atma | |
//1123456 -> 1.123.456 | |
ArrayList<String> valList = new ArrayList<>(); | |
while (true) { | |
if (valStr.isEmpty() || Integer.parseInt(valStr) < 100) { | |
if (!valStr.isEmpty()) { | |
valList.add(valStr); | |
} | |
break; | |
} | |
valList.add(valStr.substring(valStr.length() - 3, valStr.length())); | |
valStr = valStr.substring(0, valStr.length() - 3); | |
} | |
Collections.reverse(valList); | |
// Liste ters cevrildikten sonra sırayla yaziya cevirme | |
//1123456 1.123.456 -> bir milyon | yuz yirmi uc bin | dort yuz elli alti | |
String print = ""; | |
int index = 0; | |
for (String parted : valList) { | |
if (Integer.parseInt(parted) >= 100) { | |
if (parted.startsWith("1")) { | |
print += diger.get(0) + " "; | |
} else { | |
print += birlik.get(Integer.parseInt(parted.substring(0, 1))) + " " + diger.get(0) + " "; | |
} | |
print += onluk.get(Integer.parseInt(parted.substring(1, 2))) + " "; | |
print += birlik.get(Integer.parseInt(parted.substring(2, 3))) + " "; | |
} else if (Integer.parseInt(parted) >= 10) { | |
if (parted.startsWith("0")) { | |
parted = parted.substring(1, parted.length()); | |
} | |
print += onluk.get(Integer.parseInt(parted.substring(0, 1))); | |
print += birlik.get(Integer.parseInt(parted.substring(1, 2))); | |
} else if (Integer.parseInt(parted) >= 0) { | |
//Bin icin ozel durum (birbin engelleme 1001, 1234 gibi) | |
if (valList.size() > 1 && String.valueOf(val).length() == 4 && parted.length() == 1 && parted.equals("1")) { | |
} else { | |
print += birlik.get(Integer.parseInt(parted)); | |
} | |
} | |
index++; | |
if (parted.length() != 0 && valList.size() > 1 && index < valList.size()) { | |
if (parted.equals("000")) { | |
} else { | |
print += diger.get(valList.size() - index) + " "; | |
} | |
} | |
} | |
System.out.format("%-15d -> %s\n", val, print); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment