- From: Christos Cheretakis <xalkina@otenet.gr>
- Date: Mon, 16 Dec 2002 19:27:18 +0200
- To: Web Style Sheets W3C Mailing List <www-style@w3.org>
- CC: Ian Hickson <ian@hixie.ch>
- Message-ID: <3DFE0CF6.9040804@otenet.gr>
Christos Cheretakis wrote: > I'm currently working on a simple (& sample) Java class implementing > the three algorithm variations. I'll post it to the list when it will be > ready. As promised, attaching a simple java class that demonstrates the three algorithm variations. I double-checked the arrays, but if there's any inconsintency, please consider the names of the characters to be correct. > C/ > C/ -- Λες κι η στάθμη της αγάπης πάει να βρει /"\ Πόσοι κρύβονται στη λάσπη θησαυροί ASCII Ribbon Campaign \ / Πως κοπήκανε στα δάχτυλα οι σταυροί against HTML email X Γι' ανθρώπων έργα... & microsoft attachments / \
/* * GreekNumberGenerator.java * * Created on 16 Δεκέμβριος 2002, 6:15 μμ */ /** * * @author xalkina */ public class GreekNumberGenerator { static final String[] ONES_ANCIENT = { "alpha", // U+03B1 "beta", // U+03B2 "gamma", // U+03B3 "delta", // U+03B4 "epsilon", // U+03B5 "stigma", // U+03DB "zeta", // U+03B6 "eta", // U+03B7 "theta" // U+03B8 }; static final String[] TENS_ANCIENT = { "iota", // U+03B9 "kappa", // U+03BA "lamda", // U+03BB "mu", // U+03BC "nu", // U+03BD "xi", // U+03BE "omicron", // U+03BF "pi", // U+03C0 "koppa" // U+03DF }; static final String[] HUNDREDS_ANCIENT = { "rho", // U+03C1 "sigma", // U+03C3 "tau", // U+03C4 "upsilon", // U+03C5 "phi", // U+03C6 "chi", // U+03C7 "psi", // U+03C8 "omega", // U+03C9 "sampi" // U+03E1 }; static final String[] ONES_LOWER_MODERN = { "alpha", // U+03B1 "beta", // U+03B2 "gamma", // U+03B3 "delta", // U+03B4 "epsilon", // U+03B5 "(sigma+tau)", // U+03C3 U+03C4 "zeta", // U+03B6 "eta", // U+03B7 "theta" // U+03B8 }; static final String[] TENS_LOWER_MODERN = { "iota", // U+03B9 "kappa", // U+03BA "lamda", // U+03BB "mu", // U+03BC "nu", // U+03BD "xi", // U+03BE "omicron", // U+03BF "pi", // U+03C0 null }; static final String[] HUNDREDS_LOWER_MODERN = { "rho", // U+03C1 "sigma", // U+03C3 "tau", // U+03C4 "upsilon", // U+03C5 "phi", // U+03C6 "chi", // U+03C7 "psi", // U+03C8 "omega", // U+03C9 null }; static final String[] ONES_UPPER_MODERN = { "ALPHA", // U+0391 "BETA", // U+0392 "GAMMA", // U+0393 "DELTA", // U+0394 "EPSILON", // U+0395 "(SIGMA+TAU)", // U+03A3 U+03A4 "ZETA", // U+0396 "ETA", // U+0397 "THETA" // U+0398 }; static final String[] TENS_UPPER_MODERN = { "IOTA", // U+0399 "KAPPA", // U+039A "LAMDA", // U+039B "MU", // U+039C "NU", // U+039D "XI", // U+039E "OMIKRON", // U+039F "PI", // U+03A0 null }; static final String[] HUNDREDS_UPPER_MODERN = { "RHO", // U+03A1 "SIGMA", // U+03A3 "TAU", // U+03A4 "UPSILON", // U+03A5 "PHI", // U+03A6 "CHI", // U+03A7 "PSI", // U+03A8 "OMEGA", // U+03A9 null }; static final String LOWER_NUMERAL_SIGN = "(lnsign)"; // U+0375 static final String NUMERAL_SIGN = "(nsign)"; // U+0374 public static String generateAncientGreekNumber(int number) { String[][] symbols = new String[6][]; StringBuffer representation = new StringBuffer(); int current_digit; int position; int number_copy = number; symbols[0] = symbols[3] = ONES_ANCIENT; symbols[1] = symbols[4] = TENS_ANCIENT; symbols[2] = symbols[5] = HUNDREDS_ANCIENT; if (number >= 1000000) { return null; } position = 0; do { if (position == 3) { representation.insert(0, ' '); } current_digit = number_copy % 10; if (current_digit > 0) { representation.insert(0, symbols[position][current_digit-1]); } number_copy /= 10; ++position; } while (number_copy != 0); if (number >= 1000) { representation.insert(0, LOWER_NUMERAL_SIGN); } representation.append(NUMERAL_SIGN); return new String(representation); } public static String generateLowerModernGreekNumber(int number) { String[][] symbols = new String[6][]; StringBuffer representation = new StringBuffer(); int current_digit; int position; int number_copy = number; symbols[0] = symbols[3] = ONES_LOWER_MODERN; // could be ONES_ANCIENT symbols[1] = symbols[4] = TENS_LOWER_MODERN; // could be TENS_ANCIENT symbols[2] = symbols[5] = HUNDREDS_LOWER_MODERN; // could be HUNDREDS_ANCIENT if (number >= 1000000) { return null; } position = 0; do { if (position == 3) { representation.insert(0, ' '); } current_digit = number_copy % 10; if (current_digit == 9 && (position == 1 || position == 2 || position == 4 || position == 5)) { return null; } if (current_digit > 0) { representation.insert(0, symbols[position][current_digit-1]); } number_copy /= 10; ++position; } while (number_copy != 0); if (number >= 1000) { representation.insert(0, LOWER_NUMERAL_SIGN); } representation.append(NUMERAL_SIGN); return new String(representation); } public static String generateUpperModernGreekNumber(int number) { String[][] symbols = new String[6][]; StringBuffer representation = new StringBuffer(); int current_digit; int position; int number_copy = number; symbols[0] = symbols[3] = ONES_UPPER_MODERN; symbols[1] = symbols[4] = TENS_UPPER_MODERN; symbols[2] = symbols[5] = HUNDREDS_UPPER_MODERN; if (number >= 1000000) { return null; } position = 0; do { if (position == 3) { representation.insert(0, ' '); } current_digit = number_copy % 10; if (current_digit == 9 && (position == 1 || position == 2 || position == 4 || position == 5)) { return null; } if (current_digit > 0) { representation.insert(0, symbols[position][current_digit-1]); } number_copy /= 10; ++position; } while (number_copy != 0); if (number >= 1000) { representation.insert(0, LOWER_NUMERAL_SIGN); } representation.append(NUMERAL_SIGN); return new String(representation); } public static void main(String[] argv) { int number; String representation; for (int i = 0; i < argv.length; ++i) { number = Integer.parseInt(argv[i]); System.out.println(number + " is "); representation = generateAncientGreekNumber(number); System.out.print("ancient-greek: "); if (representation != null) { System.out.println(" " + representation); } else { System.out.println(" no representation"); } representation = generateLowerModernGreekNumber(number); System.out.print("lower-modern-greek: "); if (representation != null) { System.out.println(" " + representation); } else { System.out.println(" no representation"); } representation = generateUpperModernGreekNumber(number); System.out.print("upper-modern-greek: "); if (representation != null) { System.out.println(" " + representation); } else { System.out.println(" no representation"); } System.out.println("------------------------"); } } }
Received on Monday, 16 December 2002 12:30:38 UTC