一个非常基本的问题,将String连接到Int的正确方法是什么?
我是Kotlin的新手,想在String之前打印一个Integer
值并得到以下错误消息。
for (i in 15 downTo 10){
print(i + " "); //error: None of the following function can be called with the argument supplied:
print(i); //It's Working but I need some space after the integer value.
}
预期结果 15 14 13 12 11 10
答案 0 :(得分:2)
$
美元-我们将在接下来看到的字符串模板中使用美元符号
for (i in 15 downTo 10){
print("$i ")
}
输出:15 14 13 12 11 10
答案 1 :(得分:2)
您有几种选择:
1。字符串模板。我认为这是最好的。它的工作原理完全类似于第二种解决方案,但是看起来更好,并且可以添加一些所需的字符。
print("$i")
,如果您想添加一些内容
print("$i ")
print("$i - is good")
添加一些表达式放在括号中
print("${i + 1} - is better")
2。 toString
方法,可用于kotlin中的任何对象。
print(i.toString())
3。类似于Java的解决方案,具有串联功能
print("" + i)
答案 2 :(得分:1)
Int::toString
方法可满足您的需求。代替显式循环,可以考虑使用map
之类的功能方法:
(15 downTo 10).map(Int::toString).joinToString { " " }
请注意,map
部分甚至是多余的,因为joinToString
可以在内部处理转换。
答案 3 :(得分:1)
您得到的错误是因为您使用的+
是整数1(由左操作数决定)。整数+
需要2个整数。为了实际使用String的+
进行连接,您需要像"" + i + " "
这样的左侧字符串。
话虽这么说,在Kotlin中使用字符串模板:"$i "
但是,如果您只需要打印之间有空格的整数,则可以使用stdlib函数joinToString()
:
val output = (15 downTo 10).joinToString(" ")
print(output) // or println() if you want to start a new line after your integers
答案 4 :(得分:0)
只需转换为字符串:
SQL Error [42P01]: ERROR: relation "q" does not exist¶ Detail: There is a WITH item named "q", but it cannot be referenced from this part of the query.¶ Hint: Use WITH RECURSIVE, or re-order the WITH items to remove forward references.¶ Position: 269
答案 5 :(得分:0)
您可以为此使用kotlin字符串模板:
for (i in 15 downTo 10){
print("$i ");
}
https://kotlinlang.org/docs/reference/basic-types.html#string-templates
答案 6 :(得分:0)
您应该使用$
。您也可以使用+,但由于+具有也是一个运算符,该运算符会调用用于对整数求和的plus()
方法,因此您可能会感到困惑。
for (i in 15 downTo 10){
print("$i ");
}