如何在同一行添加两个数字?

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 设置为结果布尔值(truefalse)。因此,为什么你结果是布尔值。

要从 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"
}`