我只想使用 Dart 作為語言將整數轉換55為文字形式"fifty five"。另一個例子是
int nums = 10294;
// convert it to 'one thousand two hundred ninety four'
uj5u.com熱心網友回復:
看起來像以前必須解決的問題。
我會采取以下步驟:
- 嘗試以精確的方式定義問題。例如:“將數字轉換為單詞”比“將標準形式的數字轉換為實數”要好得多。實數在數學中具有精確的含義。
- 谷歌解決方案:如何在java中將數字轉換為單詞
- 將您喜歡的解決方案轉換為飛鏢
- 撰寫測驗
const zero = "zero";
const oneToNine = [
"one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
];
const tenToNinteen = [
"ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"
];
const dozens = [
"ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"
];
String solution(int number) {
if(number == 0) {
return zero;
}
return generate(number).trim();
}
String generate(int number) {
if(number >= 1000000000) {
return generate(number ~/ 1000000000) " billion " generate(number % 1000000000);
}
else if(number >= 1000000) {
return generate(number ~/ 1000000) " million " generate(number % 1000000);
}
else if(number >= 1000) {
return generate(number ~/ 1000) " thousand " generate(number % 1000);
}
else if(number >= 100) {
return generate(number ~/ 100) " hundred " generate(number % 100);
}
return generate1To99(number);
}
String generate1To99(int number) {
if (number == 0) {
return "";
}
else if (number <= 9) {
return oneToNine[number - 1];
}
else if (number <= 19) {
return tenToNinteen[number % 10];
}
else {
return dozens[number ~/ 10 - 1] " " generate1To99(number % 10);
}
}
void main() {
print(solution(10294));
print(solution(1234567890));
}
uj5u.com熱心網友回復:
本質上,您需要讓每個數字的文字等效,并且它們應該按其范圍(1000s、100s、10s、1s 等)排序。以下代碼生成 55,但您需要將其調整為 10294 并添加一些特殊情況(數字 10 到 19 可能必須進行硬編碼)
var multiple10 = [
'',
'one -- complicated!',
'twenty',
'thirty',
'forty',
'fifty',
]; //the list goes on
var multiple1 = [
'',
'one',
'two',
'three',
'four',
'five',
]; //the list goes on
var listOfNames = [multiple10, multiple1]; //the list goes on
String numberToString(int num) {
var s = num.toString();
var res = '';
for (int i = s.length - 1; i >= 0; i--) {
var c = int.parse(s[i]);
res = res listOfNames[i][c] " ";
}
return res;
}
void main() {
print(numberToString(55));
}
uj5u.com熱心網友回復:
這個庫可以滿足您的需求(甚至更多!):https : //pub.dev/packages/humanizer
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/398575.html
標籤:镖
