错误 #2007:参数文本必须为非空
Posted
技术标签:
【中文标题】错误 #2007:参数文本必须为非空【英文标题】:Error #2007: Parameter text must be non-null 【发布时间】:2017-12-26 20:52:37 【问题描述】:在我的程序中,用户必须输入一个数字 10 和 99,程序会将数字转换为单词。该程序有些工作;但是,当我输入一个介于 20 和 99 之间的数字时,例如 45,程序将打印出“四十五四十”。这是输出部分中出现“”的时候。我似乎也无法使数字从 11 到 19 来工作。结果不是用文字显示数字,而是显示“错误”。请编辑我的代码以使程序正常运行并正确打印出 10 到 99 之间的数字。
// This line makes the button, btnConvert wait for a mouse click
// When the button is clicked, the convertNumber function is called
btnConvert.addEventListener(MouseEvent.CLICK, convertNumber);
// These lines make the textinputs wait for a mouse click
// When any of these components are clicked, the clearLabels function is called
txtinNumber.addEventListener(MouseEvent.CLICK, clearLabels);
// Declare Global Variables
var num:int; // number from 10 - 99
var tensDigit:int; // the tens digit
var onesDigit:int; // the ones digit
var teensDigit = [11, 12, 13, 14, 15, 16, 17, 18, 19];
// This is the convertNumber function
// e:MouseEvent is the click event experienced by the button
// void indicates that the function does not return a value
function convertNumber(e:MouseEvent):void
getData();
if (num < 10 || num > 99)
lblOutput.text = "Invalid number. Enter a number between 10 and 99 inclusive.";
else
lblOutput.text = "";
if (num >= 20)
tensDigit = Math.floor(num / 10);
onesDigit = num % 10;
tens();
ones();
else
tensDigit = Math.floor(num / 10);
onesDigit = num % 10;
teens();
lblOutput.text =
tens();
lblOutput.text += onesDigit
ones();
// This is the getData function
// It gets the number from the user
function getData()
// complete the code here
num = int(txtinNumber.text);
// This is the tens function
// It outputs the word representation of 20, 30, 40,..,90
function tens()
if (tensDigit == 2 && tensDigit < 3)
lblOutput.text += "Twenty";
else if (tensDigit == 3 && tensDigit < 4)
lblOutput.text += "Thirty";
else if (tensDigit == 4 && tensDigit < 5)
lblOutput.text += "Forty";
else if (tensDigit == 5 && tensDigit < 6)
lblOutput.text += "Fifty";
else if (tensDigit == 6 && tensDigit < 7)
lblOutput.text += "Sixty";
else if (tensDigit == 7 && tensDigit < 8)
lblOutput.text += "Seventy";
else if (tensDigit == 8 && tensDigit < 9)
lblOutput.text += "Eighty";
else if (tensDigit == 9 && tensDigit < 10)
lblOutput.text += "Ninety";
else
lblOutput.text += "Unknown."
// This is the ones function
// It outputs the word representaion for any number from 1 - 9 inclusive
function ones()
if (onesDigit == 1)
lblOutput.text += " one"
else if (onesDigit == 2)
lblOutput.text += " two"
else if (onesDigit == 3)
lblOutput.text += " three"
else if (onesDigit == 4)
lblOutput.text += " four"
else if (onesDigit == 5)
lblOutput.text += " five"
else if (onesDigit == 6)
lblOutput.text += " six"
else if (onesDigit == 7)
lblOutput.text += " seven"
else if (onesDigit == 8)
lblOutput.text += " eight"
else if (onesDigit == 9)
lblOutput.text += " nine"
// This is the teens function
// It outputs the word representation for any number from 10 - 19 inclusive
function teens()
if (teensDigit == 10)
lblOutput.text += "Ten"
else if (teensDigit == 11)
lblOutput.text += "Eleven"
else if (teensDigit == 12)
lblOutput.text += "Twelve"
else if (teensDigit == 13)
lblOutput.text += "Thirteen"
else if (teensDigit == 14)
lblOutput.text += "Fourteen"
else if (teensDigit == 15)
lblOutput.text += "Fifteen"
else if (teensDigit == 16)
lblOutput.text += "Sixteen"
else if (teensDigit == 17)
lblOutput.text += "Seventeen"
else if (teensDigit == 18)
lblOutput.text += "Eighteen"
else if (teensDigit == 19)
lblOutput.text += "Nineteen"
else
lblOutput.text = "Error."
// This is the clearLabels function
// e:MouseEvent is the click event experienced by the textInput
// void indicates that the function does not return a value
function clearLabels(e:MouseEvent):void
lblOutput.text = "";
【问题讨论】:
【参考方案1】:您引用 teensDigit
就好像它是一个 int,但您创建了一个数组。将您的 teens()
函数更改为
if (num == 10)
等等,而不是teensDigit ==
或者,您可以简单地使用查找表。下面是您尝试执行的操作的简化版本,可以在干净的项目上进行编译。
convertNumber(7) // Outputs: seven
convertNumber(13) // Outputs: Thirteen
convertNumber(56) // Outputs: Fifty six
function convertNumber(i:int):void
var tens:int = Math.floor(i / 10);
var ones:int = (i > 9 && i < 20) ? i : i % 10;
trace(lookup.double[tens] + lookup.single[ones])
var lookup:Object =
"single":[
"",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"Ten",
"Eleven",
"Twelve",
"Thirteen",
"Fourteen",
"Fifteen",
"Sixteen",
"Seventeen",
"Eighteen",
"Nineteen"
],
"double":[
"",
"",
"Twenty ",
"Thirty ",
"Forty ",
"Fifty ",
"Sixty ",
"Seventy ",
"Eighty ",
"Ninety ",
]
【讨论】:
以上是关于错误 #2007:参数文本必须为非空的主要内容,如果未能解决你的问题,请参考以下文章
trustAnchors 参数必须为非空错误 |摇篮 |科尔多瓦
Graphiql 中标记为非空的所有字段和参数:Sangria,scala
java.security.InvalidAlgorithmParameterException:Linux上的trustAnchors参数必须为非空,或者为啥默认的信任库为空[重复]