我是kotlin的新手,我一直在研究这门语言的语法。据我所知,在kotlin中,您可以使用集成函数转换数据类型,例如: .toInt() 将3.14转换为整数: 3.14.toInt() 因为知道readline()函数返回一个字符串,所以我不确定为什么这个语法是正确的: fun main() {
println("please enter a int:")
val num1 = readLine()!!.toInt()
println("one more")
val num2 = readLine()!!.toInt()
下面的kotlin代码抛出了异常。 "".split(";").map(String::toInt)
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.ja
我收到lint错误Error: This class implements Parcelable but does not provide a CREATOR field [ParcelCreator] 我的数据类: import android.os.Parcelable
import kotlinx.parcelize.Parcelize
@Parcelize
data class PhoneNumber(val countryCode:String, val number:String) : Parcelable{
val completeNumber:String get(
我是Kotlin的真正初学者,我想知道下面这个术语在中意味着什么。
将类型从无符号类型更改为有符号类型(反之亦然)是二进制不兼容的更改。
事实上,我读过关于的文章,但作为初学者,我需要一些例子来直观地理解Kotlin中的二进制兼容性。
如果我在不同机器中用Kotlin编写的类、包或程序中使用这样的代码,会发生什么?
vaL a: UInt = 10000
val b: Int = a.toInt()
或者像这样的代码
vaL a: Int = 10000
val b: UInt = a.toUInt()
在以下代码中:
val sum = listOf(1, 2, 3).sumOf { if (it % 2 == 0) 1 else 0 }
Kotlin给出了以下错误:
Kotlin: Overload resolution ambiguity:
public inline fun <T> Iterable<TypeVariable(T)>.sumOf(selector: (TypeVariable(T)) -> Int): Int defined in kotlin.collections
public inline fun <T> Iterabl
在几乎没有任何更改的情况下重新启动我的项目之后,我突然得到了这个错误日志:
Incompatible classes were found in dependencies. Remove them from the classpath or use '-Xskip-metadata-version-check' to suppress errors
e: C:/Users/Gerald/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.5.31/43331609c7de8
我正在从这段视频中学习Kotlin,在35:45,他正在运行以下代码:
在这里输入图像描述
我试图运行完全相同的代码:
fun main() {
val x = readLine()?:"1"
val y = readLine()?:"1"
val z = x.toInt() + y.toInt()
print(z)
}
但我知道这个错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.base/ja
下面的代码适用于在Kotlin中读取二维数组并将其打印出来,但是我认为对于较大的数据集,从字符串到整型列表的交换会相当慢,所以有没有更快的方法呢?
fun main() {
var rowAndColumn = readLine()!!.split(" ")
var rows = rowAndColumn[0].toInt()
var columns = rowAndColumn[1].toInt()
val board = Array(rows) { IntArray(columns).toMutableList() }
for (i
我正在用kotlin开发一个android应用程序,在这个应用程序中,我需要将一个字符串字符转换成它的ASCII值,
fun tryDiCript(cypher: String) :String {
var cypher = "fs2543i435u@$#g#@#sagb@!#12416@@@"
var originalText = ""
var regEx =Regex("[a-z]")
for(char in regEx.findAll(cypher))
{
我在Hackerrank的Kotlin做30天的代码,我被困在第7天。
如何在一行中读取多个整数?
它是如何添加到数组中并反向显示的?
我已经用Java解决了它,但是缺少Kotlin所需的语法。
输入:
4.
1 4 3 2
我的守则:
fun main(args: Array<String>) {
val n = readLine()!!.toInt()
var arr = Array(n)
for(i in 0 until n)
{
arr[i] = readLine()!!.toInt() //Not Working? nor does
我在Kotlin中有以下代码可以将BigInteger转换为普通的integer val bigIntDiv = bigIntVal?.div(BigInteger.valueOf(429496))
val resultInt = bigIntDiv?.toInt() //This line converts the big Interger down to regular integer 我如何在javascript中实现同样的转换。 我使用的是BigNumber.js库https://github.com/MikeMcl/bignumber.js/,但是我想不出从BigN
感谢@RedBassett的重新来源(Kotlin问题解决):
我知道这里存在这个问题:
但我对Kotlin并不熟悉,我想探索Kotlin的直接特性。因此,正如标题所示,我试图找到一种Kotlin特定的方法来很好地解决生成一个4位数的问题(在此之后,可以很容易地使它适应长度x),而不会重复数字。
这是我目前的工作解决方案,并希望使它更科特林。如果能提供一些意见,我会非常感激的。
fun createFourDigitNumber(): Int {
var fourDigitNumber = ""
val rangeList = {(0..9).random()}
我正在尝试从命令行测试一个应用程序。当我在Android运行我的测试时,一切都很好。但是当我尝试运行命令时:
./gradlew test
我知道这个错误:
Task 'test' not found in root project 'mvp_kotlin_example'.
我在使用./gradlew构建或./gradlew清理时没有问题。我刚刚创建了一个项目来尝试./gradlew测试,它成功了。
在mvp_kotlin_example中,我使用Robolectric进行测试,Kotlin用于开发。
,那么如何使我的测试在命令行中工作呢?
编辑:
这是一个开
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
> java.lang.reflect.InvocationTargetException (no error message)
Caused by: org.gradle
我想为android构建一个计算器应用程序,为此,我需要一个解析器来转换待解决的字符串表达式。现在,Java和Kotlin不支持eval函数,而且仅仅为了操作而导入javascript引擎可以打开各种漏洞。所以我做了我自己的计算器解析器。现在它工作得很好,所有的算术运算都很好,除了崩溃时的负数。我知道问题是什么,因为我用分隔符分割字符串,分隔符是数学符号,但我不能用负值进行任何操作。
输入:-5+5预期:0输出:异常(numberFormatException)
这是kotlin的课程:
class CalculatorParser(private var expression: St
以下是编译错误
None of the following functions can be called with the arguments supplied:
public final operator fun div(other: Byte): Int defined in kotlin.Int
public final operator fun div(other: Double): Double defined in kotlin.Int
public final operator fun div(other: Float): Float defined in kotlin.In
在Kotlin中,从版本1.5开始,对Double和Long类型的直接转换被标记为不推荐的,建议调用下面的toInt().toChar() --一个将Double/Long转换为Char的函数链。
是什么促使Kotlin开发人员放弃了对Double和Long类型的直接转换?
这种方法可以避免哪些问题?
fun main() {
val l = 100_000_000_000 // random big number
val d = 1.2543534645645362E15 // random big double
var chUsedDirectToChar = l
我目前正在Kotlin中实现一个,当在JVM上构建/运行时,一切都运行得很好(标签标记正确,程序在标注句子时是合理的、快速的)。但是,当我将程序导出到JS时,会收到以下错误消息:
TypeError: tags.iterator is not a function. (In 'tags.iterator()', 'tags.iterator' is undefined)
Trigram — Trigram.kt:13
Globaler Code
evaluateWithScopeExtension
(anonyme Funktion)
_wrapCall
我试过
fun main() {
val thr = THR()
thr.kotlin()
thr.hitungthr(5000000, "1", 1.5)
}
class THR {
fun kotlin() {
println("Perhitungan THR")
}
fun hitungthr (gajipokok: Int, masakerja: String, jumlahthr: Double): Int {
var MasaKerja = masakerja.toInt()
背景
我有一个数据类:
data class Foo(
@SerializedName("foo")
val foo: Int = 1000
)
我想使用这个IntSafeTypeAdapter来反序列化为Foo对象。但是json字符串会意外地返回无效的foo。所以我定制了一个Gson TypeAdapter来解决这个问题。
和一个Gson TypeAdapter:
class IntSafeTypeAdapter : TypeAdapter<Int>() {
override fun write(reader: JsonWriter?, i
如果pom.xml中的spring 2没有显示插件的版本,会发生什么情况。它会自动使用最新版本吗?例如maven-插件。
<build>
<!--Закомментировать если сборка с Java-->
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/kotlin</test
我在JetBrains学院有一项任务:“编写一个程序,读取整数和两个数字的未排序列表:P和M。程序需要检查列表中是否存在P和M。
第一行包含列表的大小。下一个N行包含列表的元素。最后一行包含由空格分隔的两个整数P和M。
如果两个数字都出现在列表中,则需要打印“是”,否则“否”。“
我的代码:
fun main() {
val size = readln().toInt()
val mutList: MutableList<Int> = mutableListOf()
val (a, b) = readln().split(" ")
v
根据,Java最多可以容纳2^31 -1个字符。我试图进行基准测试,所以我尝试创建大量的字符串并将其写入如下文件:
import java.io.*
fun main() {
val out = File("ouput.txt").apply { createNewFile() }.printWriter()
sequence {
var x = 0
while (true) {
yield("${++x} ${++x} ${++x} ${++x} ${++x}")
}
我已经转换了以下Swift代码:
struct FooModel: Decodable {
public let id: String
public let bars: [[BarModel]]
}
这段Kotlin代码:
data class FooModel (val id: String, val bars: List<List<BarModel>>)
我遇到的问题是,对于Kotlin代码,我的id是空的(通过gson)。Kotlin转换中的其他所有内容都工作得很好,整个JSON都填充了所有数据类,除了这一小部分( id变量)。
我怀疑我在这里的转变是原因
Android studio一直告诉我构建失败了。我没有使用Kotlin,我所有的代码都是用JAVA编写的。只有当我想要构建/运行项目时,我才会一直收到这个错误。我总是需要删除.gradle文件夹并重启Android studio才能让它再次工作。我觉得这不是IDE的问题,因为我已经使用了IDE版本3.1和3.3。我还将Kotlin更新到当前1.2.70的最新版本
* What went wrong:
A problem occurred configuring project ':app'.
> Could not create task ':app:proce