You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by gs...@apache.org on 2010/01/06 15:36:35 UTC
svn commit: r896455 -
/lucene/java/trunk/src/test/org/apache/lucene/util/English.java
Author: gsingers
Date: Wed Jan 6 14:36:35 2010
New Revision: 896455
URL: http://svn.apache.org/viewvc?rev=896455&view=rev
Log:
Support long.
Modified:
lucene/java/trunk/src/test/org/apache/lucene/util/English.java
Modified: lucene/java/trunk/src/test/org/apache/lucene/util/English.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/util/English.java?rev=896455&r1=896454&r2=896455&view=diff
==============================================================================
--- lucene/java/trunk/src/test/org/apache/lucene/util/English.java (original)
+++ lucene/java/trunk/src/test/org/apache/lucene/util/English.java Wed Jan 6 14:36:35 2010
@@ -7,9 +7,9 @@
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,13 +20,13 @@
public class English {
- public static String intToEnglish(int i) {
+ public static String longToEnglish(long i) {
StringBuilder result = new StringBuilder();
- intToEnglish(i, result);
+ longToEnglish(i, result);
return result.toString();
}
- public static void intToEnglish(int i, StringBuilder result) {
+ public static void longToEnglish(long i, StringBuilder result) {
if (i == 0) {
result.append("zero");
return;
@@ -35,69 +35,152 @@
result.append("minus ");
i = -i;
}
- if (i >= 1000000000) { // billions
- intToEnglish(i/1000000000, result);
+ if (i >= 1000000000000000000l) { // quadrillion
+ longToEnglish(i / 1000000000000000000l, result);
+ result.append("quintillion, ");
+ i = i % 1000000000000000000l;
+ }
+ if (i >= 1000000000000000l) { // quadrillion
+ longToEnglish(i / 1000000000000000l, result);
+ result.append("quadrillion, ");
+ i = i % 1000000000000000l;
+ }
+ if (i >= 1000000000000l) { // trillions
+ longToEnglish(i / 1000000000000l, result);
+ result.append("trillion, ");
+ i = i % 1000000000000l;
+ }
+ if (i >= 1000000000) { // billions
+ longToEnglish(i / 1000000000, result);
result.append("billion, ");
- i = i%1000000000;
+ i = i % 1000000000;
}
- if (i >= 1000000) { // millions
- intToEnglish(i/1000000, result);
+ if (i >= 1000000) { // millions
+ longToEnglish(i / 1000000, result);
result.append("million, ");
- i = i%1000000;
+ i = i % 1000000;
}
- if (i >= 1000) { // thousands
- intToEnglish(i/1000, result);
+ if (i >= 1000) { // thousands
+ longToEnglish(i / 1000, result);
result.append("thousand, ");
- i = i%1000;
+ i = i % 1000;
}
- if (i >= 100) { // hundreds
- intToEnglish(i/100, result);
+ if (i >= 100) { // hundreds
+ longToEnglish(i / 100, result);
result.append("hundred ");
- i = i%100;
+ i = i % 100;
}
+ //we know we are smaller here so we can cast
if (i >= 20) {
- switch (i/10) {
- case 9 : result.append("ninety"); break;
- case 8 : result.append("eighty"); break;
- case 7 : result.append("seventy"); break;
- case 6 : result.append("sixty"); break;
- case 5 : result.append("fifty"); break;
- case 4 : result.append("forty"); break;
- case 3 : result.append("thirty"); break;
- case 2 : result.append("twenty"); break;
+ switch (((int) i) / 10) {
+ case 9:
+ result.append("ninety");
+ break;
+ case 8:
+ result.append("eighty");
+ break;
+ case 7:
+ result.append("seventy");
+ break;
+ case 6:
+ result.append("sixty");
+ break;
+ case 5:
+ result.append("fifty");
+ break;
+ case 4:
+ result.append("forty");
+ break;
+ case 3:
+ result.append("thirty");
+ break;
+ case 2:
+ result.append("twenty");
+ break;
}
- i = i%10;
+ i = i % 10;
if (i == 0)
result.append(" ");
- else
+ else
result.append("-");
}
- switch (i) {
- case 19 : result.append("nineteen "); break;
- case 18 : result.append("eighteen "); break;
- case 17 : result.append("seventeen "); break;
- case 16 : result.append("sixteen "); break;
- case 15 : result.append("fifteen "); break;
- case 14 : result.append("fourteen "); break;
- case 13 : result.append("thirteen "); break;
- case 12 : result.append("twelve "); break;
- case 11 : result.append("eleven "); break;
- case 10 : result.append("ten "); break;
- case 9 : result.append("nine "); break;
- case 8 : result.append("eight "); break;
- case 7 : result.append("seven "); break;
- case 6 : result.append("six "); break;
- case 5 : result.append("five "); break;
- case 4 : result.append("four "); break;
- case 3 : result.append("three "); break;
- case 2 : result.append("two "); break;
- case 1 : result.append("one "); break;
- case 0 : result.append(""); break;
+ switch ((int) i) {
+ case 19:
+ result.append("nineteen ");
+ break;
+ case 18:
+ result.append("eighteen ");
+ break;
+ case 17:
+ result.append("seventeen ");
+ break;
+ case 16:
+ result.append("sixteen ");
+ break;
+ case 15:
+ result.append("fifteen ");
+ break;
+ case 14:
+ result.append("fourteen ");
+ break;
+ case 13:
+ result.append("thirteen ");
+ break;
+ case 12:
+ result.append("twelve ");
+ break;
+ case 11:
+ result.append("eleven ");
+ break;
+ case 10:
+ result.append("ten ");
+ break;
+ case 9:
+ result.append("nine ");
+ break;
+ case 8:
+ result.append("eight ");
+ break;
+ case 7:
+ result.append("seven ");
+ break;
+ case 6:
+ result.append("six ");
+ break;
+ case 5:
+ result.append("five ");
+ break;
+ case 4:
+ result.append("four ");
+ break;
+ case 3:
+ result.append("three ");
+ break;
+ case 2:
+ result.append("two ");
+ break;
+ case 1:
+ result.append("one ");
+ break;
+ case 0:
+ result.append("");
+ break;
}
}
+
+ public static String intToEnglish(int i) {
+ StringBuilder result = new StringBuilder();
+ longToEnglish(i, result);
+ return result.toString();
+ }
+
+ public static void intToEnglish(int i, StringBuilder result) {
+ longToEnglish(i, result);
+ }
+
public static void main(String[] args) {
- System.out.println(intToEnglish(Integer.parseInt(args[0])));
+ System.out.println(longToEnglish(Long.parseLong(args[0])));
}
}