如何在同一行添加两个数字?
How to add two numbers on same line?
我想添加 editText 的第一个和第二个值。例如:如果用户输入 15,则将 1 添加到 5。我试过此代码:
val input = editText.text
if (input.length == 2) {
val firstValue = input.length == 1
val secondValue = input.length == 2
val result = firstValue + secondValue
textView.text = result
}
但我得到了这个结果:“[Ljava.lang.Boolean;@312b186”
val firstValue = input.length == 1
val secondValue = input.length == 2
这两个块实际上都是布尔值。 firstValue 是 "is input length equal to 1" 的布尔结果,secondValue 也类似。这意味着 firstValue + secondValue 实际上是
val result = true + false
我想这在编译时不会被识别为错误,因为 Java 9 val
关键字。但结果实际上是一个布尔值。
首先,这是 "half of" 这个 的副本。但它不止于此。
这里的问题是 val 隐藏了实际类型,然后事情就出错了。
[Ljava.lang.Boolean;@312b186"
表示您在 Boolean 对象数组上调用 toString()
。
换句话说:您创建了一个布尔数组(具有两个值),而不是将字符串对象放在一起,然后您得到 thatArray.toString() 作为结果。
因此,第一步:不要到处使用 val
,而是提供不同的类型。
您似乎希望 传入的 字符串是数字。如果是这样,您应该按照其他答案的建议去做,并在输入字符串上使用 toInt()
!
问题是 val firstValue = input.length == 1
return 是一个布尔值。正如最初的 if
测试所表明的那样。
要获取头寸的价值,首先您需要执行以下操作:
val firstValue = input.get(0);
不过,我希望 return 一个 String
。因此,您需要将 String
转换为整数。
val firstValue = input.get(0).toInt(10);
然后您应该能够添加值(需要对 secondValue
进行修改)。
注意:根据 .toInt()
的具体情况,可能需要执行 .subSequence(0, 1)
和 .subsequence(1, 2)
而不是 get()
。我目前没有 Kotlin 环境 运行 无法确认。
使用模运算提取数字的余数并将余数添加到结果变量中。这是代码...
int remainder, result = 0;
String value= editText.getText().toString();
int i=Integer.parseInt(value);
int temp=i;
while(temp != 0){
remainder=temp % 10;
result += remainder;
temp=temp/10;
}
在您的示例中,您从 EditText 中错误地检索了值:
val firstValue = input.length == 1
这将做的是检查 input.length
的长度是否为 1,并将 firstValue
设置为结果布尔值(true
或 false
)。因此,为什么你结果是布尔值。
要从 EditText 中检索文本,您必须执行如下操作:
val inputString = input.getText().toString()
将从 EditText 中检索文本作为字符串。
接下来,我们使用子字符串检索单个字符,然后将其解析为整数。
val firstValue = inputString.substring(0,1).toInt()
val secondValue = inputString.subString(1,2).toInt()
我们现在可以将整数相加得到结果:
val result = firstValue + secondValue
firstValue 和 secondValue 分配的是布尔值而不是整数。快速修复如下。
val input = editText.text.toString()
if (input.length == 2) {
val firstValue = input[0]
val secondValue = input[1]
val result = firstValue.toInt() + secondValue.toInt()
textView.text = "$result"
}`
我想添加 editText 的第一个和第二个值。例如:如果用户输入 15,则将 1 添加到 5。我试过此代码:
val input = editText.text
if (input.length == 2) {
val firstValue = input.length == 1
val secondValue = input.length == 2
val result = firstValue + secondValue
textView.text = result
}
但我得到了这个结果:“[Ljava.lang.Boolean;@312b186”
val firstValue = input.length == 1
val secondValue = input.length == 2
这两个块实际上都是布尔值。 firstValue 是 "is input length equal to 1" 的布尔结果,secondValue 也类似。这意味着 firstValue + secondValue 实际上是
val result = true + false
我想这在编译时不会被识别为错误,因为 Java 9 val
关键字。但结果实际上是一个布尔值。
首先,这是 "half of" 这个
这里的问题是 val 隐藏了实际类型,然后事情就出错了。
[Ljava.lang.Boolean;@312b186"
表示您在 Boolean 对象数组上调用 toString()
。
换句话说:您创建了一个布尔数组(具有两个值),而不是将字符串对象放在一起,然后您得到 thatArray.toString() 作为结果。
因此,第一步:不要到处使用 val
,而是提供不同的类型。
您似乎希望 传入的 字符串是数字。如果是这样,您应该按照其他答案的建议去做,并在输入字符串上使用 toInt()
!
问题是 val firstValue = input.length == 1
return 是一个布尔值。正如最初的 if
测试所表明的那样。
要获取头寸的价值,首先您需要执行以下操作:
val firstValue = input.get(0);
不过,我希望 return 一个 String
。因此,您需要将 String
转换为整数。
val firstValue = input.get(0).toInt(10);
然后您应该能够添加值(需要对 secondValue
进行修改)。
注意:根据 .toInt()
的具体情况,可能需要执行 .subSequence(0, 1)
和 .subsequence(1, 2)
而不是 get()
。我目前没有 Kotlin 环境 运行 无法确认。
使用模运算提取数字的余数并将余数添加到结果变量中。这是代码...
int remainder, result = 0;
String value= editText.getText().toString();
int i=Integer.parseInt(value);
int temp=i;
while(temp != 0){
remainder=temp % 10;
result += remainder;
temp=temp/10;
}
在您的示例中,您从 EditText 中错误地检索了值:
val firstValue = input.length == 1
这将做的是检查 input.length
的长度是否为 1,并将 firstValue
设置为结果布尔值(true
或 false
)。因此,为什么你结果是布尔值。
要从 EditText 中检索文本,您必须执行如下操作:
val inputString = input.getText().toString()
将从 EditText 中检索文本作为字符串。
接下来,我们使用子字符串检索单个字符,然后将其解析为整数。
val firstValue = inputString.substring(0,1).toInt()
val secondValue = inputString.subString(1,2).toInt()
我们现在可以将整数相加得到结果:
val result = firstValue + secondValue
firstValue 和 secondValue 分配的是布尔值而不是整数。快速修复如下。
val input = editText.text.toString()
if (input.length == 2) {
val firstValue = input[0]
val secondValue = input[1]
val result = firstValue.toInt() + secondValue.toInt()
textView.text = "$result"
}`