|
|
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток) есть код программы для перевода чисел в слова,но не знаю,что надо сделать,чтоб он работал(выбивает ошибку в конце), может ктото поможет?) заранее спасибо package russianmoney; import java.util.Stack; public class RussianMoney { private static enum Ranges { UNITS, DECADES, HUNDREDS, THOUSANDS, MILLIONS, BILLIONS }; private static Stack<ThreeChar> threeChars; private static class ThreeChar { char h, d, u; Ranges range; } public static String digits2text(String s) { try { return digits2text(new Double(s)); } catch (NumberFormatException ex) { System.out.println(ex); return null; } } public static String digits2text(Double d) { // TODO: Научиться парсить числа > 1000000 String s = d.toString(); int n = s.length() - s.lastIndexOf('.'); if (d == null || d < 0.0 || d > 1000000.0 || n > 3) { System.out.println("Пока гарантированно преобразуются лишь числа от 0.0 до 1000000.0"); return null; } if (n == 2) { s += "0"; } String[] sa = s.split("\\."); threeChars = new Stack<>(); threeChars.push(new ThreeChar()); threeChars.peek().range = Ranges.UNITS; StringBuilder sb = new StringBuilder(sa[0]).reverse(); for (int i = 0; i < sb.length(); i++) { if (i > 0 && i % 3 == 0) { threeChars.push(new ThreeChar()); } ThreeChar threeChar = threeChars.peek(); switch (i) { case 0: threeChar.u = sb.charAt(i); break; case 3: threeChar.range = Ranges.THOUSANDS; threeChar.u = sb.charAt(i); break; case 6: threeChar.range = Ranges.MILLIONS; threeChar.u = sb.charAt(i); break; case 9: threeChar.range = Ranges.BILLIONS; threeChar.u = sb.charAt(i); break; case 2: case 5: case 8: threeChar.h = sb.charAt(i); break; default: threeChar.d = sb.charAt(i); } } StringBuilder result = new StringBuilder(); while (!threeChars.isEmpty()) { ThreeChar thch = threeChars.pop(); if(thch.h == '0' && thch.d == '0' && thch.u == '0' && !threeChars.isEmpty()) continue; if (thch.h > 0) { result.append(getHundreds(thch.h)); result.append(' '); } if (thch.d > '0') { if (thch.d > '1' || (thch.d == '1' && thch.u == '0')) { result.append(getDecades(thch.d)); } else if (thch.d > '0') { result.append(getTeens(thch.d)); } result.append(' '); } if (thch.u > '0' && thch.d != '1') { result.append(getUnits(thch.u, thch.range == Ranges.THOUSANDS)); result.append(' '); } switch (thch.range) { case BILLIONS: if (thch.d == '1' || thch.u == '0') { result.append("миллиардов"); } else if (thch.u > '4') { result.append("миллиардов"); } else if (thch.u > '1') { result.append("миллиарда"); } else { result.append("миллиард"); } break; case MILLIONS: if (thch.d == '1' || thch.u == '0') { result.append("миллионов"); } else if (thch.u > '4') { result.append("миллионов"); } else if (thch.u > '1') { result.append("миллиона"); } else { result.append("миллион"); } break; case THOUSANDS: if (thch.d == '1' || thch.u == '0') { result.append("тысяч"); } else if (thch.u > '4') { result.append("тысяч"); } else if (thch.u > '1') { result.append("тысячи"); } else { result.append("тысяча"); } break; default: if (thch.d == '1' || thch.u == '0' || thch.u > '4') { result.append("рублей"); } else if (thch.u > '1') { result.append("рубля"); } else { result.append("рубль"); } } result.append(' '); } result.append(sa[1]).append(' '); switch (sa[1].charAt(1)) { case '1': result.append(sa[1].charAt(0) != '1' ? "копейка" : "копеек"); break; case '2': case '3': case '4': result.append(sa[1].charAt(0) != '1' ? "копейки" : "копеек"); break; default: result.append("копеек"); } char first = Character.toUpperCase(result.charAt(0)); result.setCharAt(0, first); return result.toString().replaceAll("null", ""); } private static String getHundreds(char dig) { switch (dig) { case '1': return "сто"; case '2': return "двести"; case '3': return "триста"; case '4': return "четыреста"; case '5': return "пятьсот"; case '6': return "шестсот"; case '7': return "семсот"; case '8': return "восемсот"; case '9': return "девятьсот"; default: return null; } } private static String getDecades(char dig) { switch (dig) { case '1': return "десять"; case '2': return "двадцать"; case '3': return "тридцать"; case '4': return "сорок"; case '5': return "пятьдесят"; case '6': return "шестьдесят"; case '7': return "семьдесят"; case '8': return "восемьдесят"; case '9': return "девяносто"; default: return null; } } private static String getUnits(char dig, boolean female) { switch (dig) { case '1': return female ? "одна" : "один"; case '2': return female ? "две" : "два"; case '3': return "три"; case '4': return "четыре"; case '5': return "пять"; case '6': return "шесть"; case '7': return "семь"; case '8': return "восемь"; case '9': return "девять"; default: return null; } } private static String getTeens(char dig) { String s = ""; switch (dig) { case '1': s = "один"; break; case '2': s = "две"; break; case '3': s = "три"; break; case '4': s = "четыр"; break; case '5': s = "пят"; break; case '6': s = "шест"; break; case '7': s = "сем"; break; case '8': s = "восем"; break; case '9': s = "девят"; break; } return s + "надцать"; } public static void main(String[] args) { System.out.println(RussianMoney.digits2text(new Double(args[0]))); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:09:09 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Shirokij,выбивает ошибку в концеКакую? В конце чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:25:52 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Посоны, не запускайте, выбъет в конце. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:36:02 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
ЛагманПосоны, не запускайте, выбъет в конце. А раньше не мог написать? Ноут сгорел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:52:53 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Отформатировал код Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:55:06 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Отформатировал ещё раз :/ Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:56:29 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Лагман, кто-нибудь выжил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:57:05 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Ладно, может автор сообщит нам какие-нибудь подробности, текст выбитой ошибки хотя бы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 18:05:32 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Ошибка в методе main З.ы. А куда вводить число для перевода в слово? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:11:37 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
ShirokijОшибка в методе main З.ы. А куда вводить число для перевода в слово? java RussianMoney 45.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:19:10 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Спасибо) а это где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:21:42 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
ShirokijСпасибо) а это где? java.exe ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:25:11 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
ferc, Вангую что ошибка: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:27:26 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Shirokij, Вобщем у вас есть класс с методом main. в main вызывается метод digits2text, который принимает в качестве аргументы Double, дабл берется из аргументов метода main: args[0]. надо скомпилировать файл javac'ом .java в .class и запустить через java с агрументом типа Double 564.87 (рубли.копейки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:33:48 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Ага, понял , а возможно сделать так, чтоб число прописывалось в самом коде и ответ выбивался при сборке кода?(пардон за корявое объяснение, сам пока что чайник и пытаюсь научиться, практикуюсь)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:33:53 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Можете на примере моего кода, пожалуйста?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:39:34 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
ShirokijАга, понял , а возможно сделать так, чтоб число прописывалось в самом коде и ответ выбивался при сборке кода?(пардон за корявое объяснение, сам пока что чайник и пытаюсь научиться, практикуюсь)) Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:40:16 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
ferc, Спасибо огромное) ты мне сильно помогаешь) теперь последний вопрос и все: эту строку вставлять в самый конец кода или куда?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:45:22 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
Shirokij, Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:49:10 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
fercShirokij, Код: java 1. 2. 3. Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:50:01 |
|
||
|
Помогите плиз исправить ошибку в программе, займет пару минут))
|
|||
|---|---|---|---|
|
#18+
вот это Код: java 1. 2. 3. запускается через командную строку, например java russianmoney.RussianMoney 45.56 45.56 - это args[0] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 20:53:12 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=196&tid=2128022]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 312ms |

| 0 / 0 |
