RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
Words.java
1package com.osroyale.util;
2
31
32* This class specially written to convert the given number into words. It will
33 * support upto 1 crore.
34 *
35 * @author SANTHOSH REDDY MANDADI
36 * @version release: 2_0_48
37 * @since April 03 2008
38 */
39public class Words {
40 long num;
41
42 private Words() {
43 num = 0;
44 }
45
46 private Words(long num) {
47 this.num = num;
48 }
49
50 public void setNumber(long num) {
51 this.num = num;
52 }
53
54 public long getNumber() {
55 return num;
56 }
57
58 public static Words getInstance(long num) {
59 return new Words(num);
60 }
61
62 public static String leftChars(String str, int n) {
63 if (str.length() <= n)
64 return str;
65 else
66 return str.substring(0, n);
67 }
68
69 public static String rightChars(String str, int n) {
70 if (str.length() <= n)
71 return str;
72 else
73 return str.substring(str.length() - n);
74 }
75
76 public long leftChars(int n) {
77 return Long.parseLong(leftChars(Long.toString(num), n));
78 }
79
80 public long rightChars(int n) {
81 return Long.parseLong(rightChars(Long.toString(num), n));
82 }
83
84 public long leftChars(long num, int n) {
85 return Long.parseLong(leftChars(Long.toString(num), n));
86 }
87
88 public long rightChars(long num, int n) {
89 return Long.parseLong(rightChars(Long.toString(num), n));
90 }
91
92 public int length(long num) {
93 return Long.toString(num).length();
94 }
95
96 private String belowTen(long x) {
97 switch ((int) x) {
98 case 1:
99 return "One ";
100 case 2:
101 return "Two ";
102 case 3:
103 return "Three ";
104 case 4:
105 return "Four ";
106 case 5:
107 return "Five ";
108 case 6:
109 return "Six ";
110 case 7:
111 return "Seven ";
112 case 8:
113 return "Eight ";
114 case 9:
115 return "Nine ";
116 }
117 return "";
118 }
119
120 private String belowTwenty(long x) {
121 if (x < 10)
122 return belowTen(x);
123 switch ((int) x) {
124 case 10:
125 return "Ten ";
126 case 11:
127 return "Eleven ";
128 case 12:
129 return "Twelve ";
130 case 13:
131 return "Thirteen ";
132 case 14:
133 return "Fourteen ";
134 case 15:
135 return "Fifteen ";
136 case 16:
137 return "Sixteen ";
138 case 17:
139 return "Seventeen ";
140 case 18:
141 return "Eighteen ";
142 case 19:
143 return "Nineteen ";
144 }
145 return "";
146 }
147
148 private String belowHundred(long x) {
149 if (x < 10)
150 return belowTen(x);
151 else if (x < 20)
152 return belowTwenty(x);
153 switch ((int) leftChars(x, 1)) {
154 case 2:
155 return "Twenty " + belowTen(rightChars(x, 1));
156 case 3:
157 return "Thirty " + belowTen(rightChars(x, 1));
158 case 4:
159 return "Fourty " + belowTen(rightChars(x, 1));
160 case 5:
161 return "Fifty " + belowTen(rightChars(x, 1));
162 case 6:
163 return "Sixty " + belowTen(rightChars(x, 1));
164 case 7:
165 return "Seventy " + belowTen(rightChars(x, 1));
166 case 8:
167 return "Eighty " + belowTen(rightChars(x, 1));
168 case 9:
169 return "Ninety " + belowTen(rightChars(x, 1));
170 }
171 return "";
172 }
173
174 private String belowThousand(long x) {
175 if (x < 10)
176 return belowTen(x);
177 else if (x < 20)
178 return belowTwenty(x);
179 else if (x < 100)
180 return belowHundred(x);
181 return belowTen(leftChars(x, 1)) + "Hundred " + belowHundred(rightChars(x, 2));
182 }
183
184 private String belowLakh(long x) {
185 if (x < 10)
186 return belowTen(x);
187 else if (x < 20)
188 return belowTwenty(x);
189 else if (x < 100)
190 return belowHundred(x);
191 else if (x < 1000)
192 return belowThousand(x);
193 if (length(x) == 4)
194 return belowTen(leftChars(x, 1)) + "Thousand " + belowThousand(rightChars(x, 3));
195 else
196 return belowHundred(leftChars(x, 2)) + "Thousand " + belowThousand(rightChars(x, 3));
197 }
198
199 public String belowCrore(long x) {
200 if (x < 10)
201 return belowTen(x);
202 else if (x < 20)
203 return belowTwenty(x);
204 else if (x < 100)
205 return belowHundred(x);
206 else if (x < 1000)
207 return belowThousand(x);
208 else if (x < 100000)
209 return belowLakh(x);
210 if (length(x) == 6)
211 return belowTen(leftChars(x, 1)) + "Lakh " + belowLakh(rightChars(x, 5));
212 else
213 return belowHundred(leftChars(x, 2)) + "Lakh " + belowLakh(rightChars(x, 5));
214 }
215
216 public String belowBillion(long x) {
217 if (x < 10)
218 return belowTen(x);
219 else if (x < 20)
220 return belowTwenty(x);
221 else if (x < 100)
222 return belowHundred(x);
223 else if (x < 1000)
224 return belowThousand(x);
225 else if (x < 100000)
226 return belowLakh(x);
227 else if (x < 100000000)
228 return belowCrore(x);
229
230 if (length(x) == 8)
231 return belowTen(leftChars(x, 1)) + "Bilion " + belowCrore(rightChars(x, 7));
232 else
233 return belowHundred(leftChars(x, 2)) + "Bilion " + belowCrore(rightChars(x, 7));
234 }
235
236 public String getNumberInWords() {
237 if (num < 10)
238 return belowTen(num);
239 else if (num < 20)
240 return belowTwenty(num);
241 else if (num < 100)
242 return belowHundred(num);
243 else if (num < 1000)
244 return belowThousand(num);
245 else if (num < 100000)
246 return belowLakh(num);
247 else if (num < 10000000)
248 return belowCrore(num);
249 else if (num < 1000000000)
250 return belowBillion(num);
251 return "";
252 }
253
254}