Kodi:
package javaapplication1;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Main {
public static void main(String[] args) {
String cp = System.getProperty("console.encoding");
if (cp != null) {
try {
System.setOut(new PrintStream(System.out, true, cp));
System.setErr(new PrintStream(System.err, true, cp));
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
System.out.println("");
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("~= NUMRAT NE SHKRONJA =~");
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("");
System.out.println("Shtypni numra duke i ndarė numrat me presje!");
System.out.println("Tek numrat decimal pėrdorni nė vend tė presjes pikėn!");
System.out.println("");
String sHyrja = "";
BufferedReader reader =
new BufferedReader(new InputStreamReader(System.in));
try {
sHyrja = reader.readLine();
} catch (IOException e) {
System.out.println(e.toString());
}
ArrayList sList = new ArrayList();
String[] sTmp = sHyrja.split(",");
System.out.println("");
for (int i = 0; i < sTmp.length; i++) {
sList.add(sTmp[i].toString());
}
BigDecimal shuma = new BigDecimal("0");
for (int i = 0; i < sList.size(); i++) {
try {
BigDecimal augend = new BigDecimal(sList.get(i).toString());
shuma = shuma.add(augend);
} catch (Exception ex) {
System.out.println(" Kujdes: - Numri \"" +
sList.get(i).toString() +
"\" nuk ėshtė i rregullt dhe nuk do tė shtjellohet mė tej!");
sList.remove(i);
i--;
}
}
System.out.println("");
if (sList.size() > 1)
System.out.println("Janė shtypur " + sList.size() + " (" +
ne_shkronja(String.valueOf(sList.size())) +
") numra!");
else
System.out.println("Eshtė shtypur " + sList.size() + " (" +
ne_shkronja(String.valueOf(sList.size())) +
") numėr!");
BigDecimal zero = new BigDecimal("0");
System.out.println("");
if (shuma.equals(zero)) {
System.out.println("Shuma e numrave ėshtė: 0 ( zero )");
} else {
System.out.println("Shuma e numrave ėshtė: " +
String.format("%,.2f", shuma) + " (" +
ne_shkronja(String.format("%,.2f", shuma)) +
")");
}
BigDecimal mesatarja = new BigDecimal("0");
mesatarja = mesatarja.add(shuma);
BigDecimal numrat = new BigDecimal(sList.size());
System.out.println("");
if (shuma.equals(zero)) {
System.out.println("Mesatarja e numrave ėshtė: 0 ( zero )");
} else {
if (sList.size() > 0) {
mesatarja = mesatarja.divide(numrat,RoundingMode.FLOOR);
}
System.out.println("Mesatarja e numrave ėshtė: " +
String.format("%,.2f", mesatarja) + " (" +
ne_shkronja(String.format("%,.2f", mesatarja)) +
")");
}
}
private static String ne_shkronja(String sHyrja) {
String nr_final = "";
if (sHyrja.substring(0, 1).matches("-")) {
nr_final += "minus";
sHyrja = sHyrja.substring(1, (sHyrja.length()));
}
String[] a = new String[0];
String[] b = new String[0];
String sPresja = "";
String numri = "";
boolean presja = false;
if (sHyrja.indexOf(",") >= 0) {
a = sHyrja.split(",");
numri = a[0];
sPresja = a[1];
presja = true;
} else {
numri = sHyrja;
}
List sShtojca = new ArrayList();
String[] strArray = new String[] { "nondeciliardė e",
"nondecilionė e",
"oktdeciliardė e",
"oktdecilionė e",
"septdeciliardė e",
"septdecilionė e",
"sekstdeciliardė e",
"sekstdecilionė e",
"kuindeciliardė e",
"kuindecilionė e",
"kuatrodeciliardė e",
"kuatrodecilionė e",
"tredeciliardė e",
"tredecilionė e",
"duodeciliardė e",
"duodecilionė e",
"undeciliardė e",
"undecilionė e",
"deciliardė e",
"decilionė e",
"noniliardė e",
"nonilionė e",
"oktiliardė e",
"oktilionė e",
"septiliardė e",
"septilionė e",
"sekstiliardė e",
"sekstilionė e",
"kuintiliardė e",
"kuintilionė e",
"kuadriliardė e",
"kuadrilionė e",
"triliardė e",
"trilionė e",
"biliardė e",
"bilionė e",
"miliardė e",
"milionė e", "mijė e",
"" };
Collections.addAll(sShtojca, strArray);
ArrayList x = new ArrayList();
ArrayList aFinal = new ArrayList();
boolean bX = false;
if (numri.length() > 3) {
b = numri.split("\\.");
for (int i = b.length; i > 0; i--) {
x.add(b[i - 1]);
}
bX = true;
} else {
nr_final += (string_ne_numra(numri));
}
for (int y = 0; y < (Math.abs(sShtojca.size() - x.size())); y++) {
sShtojca.remove(y);
y--;
}
if (bX) {
for (int i = x.size(); i > 0; i--) {
aFinal.add(x.get(i - 1));
}
for (int j = 0; j < aFinal.size(); j++) {
nr_final += string_ne_numra(aFinal.get(j).toString());
nr_final += sShtojca.get(j).toString();
}
}
if (presja) {
if (!sPresja.substring(0, 1).matches("0") &&
!sPresja.substring(1, 2).matches("0")) {
nr_final += "presje";
nr_final += string_ne_numra(sPresja);
} else if (sPresja.substring(0, 1).matches("0") &&
!sPresja.substring(1, 2).matches("0")) {
nr_final += "presje zero";
nr_final += string_ne_numra(sPresja);
} else if (sPresja.substring(0, 1).matches("0") &&
sPresja.substring(1, 2).matches("0"))
nr_final += "";
}
return nr_final;
}
private static String string_ne_numra(String p) {
String sNumri = "";
switch (p.length()) {
case 1:
sNumri = pa_mbdhjete(p);
break;
case 2:
if (p.substring(0, 1).matches("1") &&
!p.substring(1, 2).matches("0")) {
sNumri = me_mbdhjete(p);
} else {
sNumri = pa_mbdhjete(p);
}
break;
case 3:
if (p.substring(1, 2).matches("1") &&
!p.substring(2, 3).matches("0")) {
sNumri = me_mbdhjete(p);
} else {
sNumri = pa_mbdhjete(p);
}
break;
}
return sNumri;
}
private static String pa_mbdhjete(String p) {
String iNumri = p;
String sNumri = "";
String[][] sArray = new String[3][];
sArray[2] =
new String[] { " njėqind ", " dyqind ", " treqind ", " katėrqind ",
" pesėqind ", " gjashtėqind ", " shtatėqind ",
" tetėqind ", " nėntėqind " };
sArray[1] =
new String[] { " dhjetė ", " njėzet ", " tridhjetė ", " dyzet ",
" pesėdhjetė ", " gjashtėdhjetė ",
" shtatėdhjetė ", " tetėdhjetė ",
" nėntėdhjetė " };
sArray[0] =
new String[] { " njė ", " dy ", " tre ", " katėr ", " pesė ",
" gjashtė ", " shtatė ", " tetė ", " nėntė " };
switch (p.length()) {
case 1:
if (Integer.parseInt(iNumri.substring(0, 1)) > 0)
sNumri =
"e" + sArray[0][Integer.parseInt(iNumri.substring(0, 1)) -
1] + sNumri;
break;
case 2:
if (Integer.parseInt(iNumri.substring(1, 2)) > 0)
sNumri =
"e" + sArray[0][Integer.parseInt(iNumri.substring(1, 2)) -
1] + sNumri;
if (Integer.parseInt(iNumri.substring(0, 1)) > 0)
sNumri =
"e" + sArray[1][Integer.parseInt(iNumri.substring(0, 1)) -
1] + sNumri;
break;
case 3:
if (Integer.parseInt(iNumri.substring(2, 3)) > 0)
sNumri =
"e" + sArray[0][Integer.parseInt(iNumri.substring(2, 3)) -
1] + sNumri;
if (Integer.parseInt(iNumri.substring(1, 2)) > 0)
sNumri =
"e" + sArray[1][Integer.parseInt(iNumri.substring(1, 2)) -
1] + sNumri;
if (Integer.parseInt(iNumri.substring(0, 1)) > 0)
sNumri =
"e" + sArray[2][Integer.parseInt(iNumri.substring(0, 1)) -
1] + sNumri;
break;
}
sNumri = sNumri.substring(1, sNumri.length());
return sNumri;
}
private static String me_mbdhjete(String p) {
String iNumri = p;
String sNumri = "";
if (p.length() == 2) {
String[][] sArray = new String[1][];
sArray[0] =
new String[] { " njėmbėdhjetė ", " dymbėdhjetė ", " trembėdhjetė ",
" katėrmbėdhjetė ", " pesėmbėdhjetė ",
" gjashtėmbėdhjetė ", " shtatėmbėdhjetė ",
" tetėmbėdhjetė ", " nėntėmbėdhjetė " };
String sTemp = iNumri.substring(1, 2);
if (Integer.parseInt(sTemp) > 0)
sNumri = "e" + sArray[0][Integer.parseInt(sTemp) - 1] + sNumri;
sNumri = sNumri.substring(1, sNumri.length());
} else if (p.length() == 3) {
if (p.substring(0, 1) != null) {
String[][] sArray = new String[2][];
sArray[1] =
new String[] { " njėqind ", " dyqind ", " treqind ",
" katėrqind ", " pesėqind ",
" gjashtėqind ", " shtatėqind ",
" tetėqind ", " nėntėqind " };
sArray[0] =
new String[] { " njėmbėdhjetė ", " dymbėdhjetė ", " trembėdhjetė ",
" katėrmbėdhjetė ", " pesėmbėdhjetė ",
" gjashtėmbėdhjetė ",
" shtatėmbėdhjetė ", " tetėmbėdhjetė ",
" nėntėmbėdhjetė " };
String sTempX = iNumri.substring(2, 3);
if (Integer.parseInt(sTempX) > 0)
sNumri =
"e" + sArray[0][Integer.parseInt(sTempX) - 1] + sNumri;
String sTemp = iNumri.substring(0, 1);
if (Integer.parseInt(sTemp) > 0)
sNumri =
"e" + sArray[1][Integer.parseInt(sTemp) - 1] + sNumri;
sNumri = sNumri.substring(1, sNumri.length());
} else {
String[][] sArray = new String[1][];
sArray[0] =
new String[] { " njėmbėdhjetė ", " dymbėdhjetė ", " trembėdhjetė ",
" katėrmbėdhjetė ", " pesėmbėdhjetė ",
" gjashtėmbėdhjetė ",
" shtatėmbėdhjetė ", " tetėmbėdhjetė ",
" nėntėmbėdhjetė " };
String sTemp = iNumri.substring(1, 2);
if (Integer.parseInt(sTemp) > 0)
sNumri =
"e" + sArray[0][Integer.parseInt(sTemp) - 1] + sNumri;
sNumri = sNumri.substring(1, sNumri.length());
}
}
return sNumri;
}
}
Nese programi startohet ne Konsolen e Windowsit duhet te shtohet nje parameter per encodim te shkronjave: -Dconsole.encoding=CP0850.
Krijoni Kontakt