Skip to content

Instantly share code, notes, and snippets.

@egcodes
Created December 30, 2016 19:07
Show Gist options
  • Save egcodes/1f1f5eeaf5700722ad96920bb9db129a to your computer and use it in GitHub Desktop.
Save egcodes/1f1f5eeaf5700722ad96920bb9db129a to your computer and use it in GitHub Desktop.
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