下面的代码是创建一个名为的新映射nameTable,然后向其中添加一个名为example的条目,然后尝试打印Value的name属性.
当我运行它时,似乎plus操作没有像我想象的那样向地图添加新条目.
那么我做错了什么?
class Person(name1: String, lastName1: String, age1: Int){
var name: String = name1
var lastName: String = lastName1
var age: Int = age1
}
var nameTable: MutableMap<String, Person> = mutableMapOf()
var example = Person("Josh", "Cohen", 24)
fun main (args: Array<String>){
nameTable.plus(Pair("person1", example))
for(entry in nameTable){
println(entry.value.age)
}
}
Run Code Online (Sandbox Code Playgroud)
虽然我们在这里,但我会喜欢一些如何添加,删除和从地图中获取条目的示例.
说我有一个字符串:"Test me".
我该如何将其转换为:"Test me"?
我尝试过使用:
string?.replace("\\s+", " ")
Run Code Online (Sandbox Code Playgroud)
但似乎这\\s是Kotlin的非法逃脱.
说我有一个字符串
"Hello! How do you do? Good day!"
我想分割它,我的分隔符是:?并且!
使用"split"函数,结果将是:
`[Hello, How do you do, Good day]`
Run Code Online (Sandbox Code Playgroud)
但是,我希望它是:
`[Hello, !, How do you do, ?, Good day, !]`
Run Code Online (Sandbox Code Playgroud) 我在Kotlin做一个学校项目,需要知道它是如何处理垃圾的.它的垃圾收集器中是否与Java类似?
我第一次尝试使用 DateTime。
我正在 IntelliJ 上使用 Java。
我试过写:
DateTime dt = new DateTime();
Run Code Online (Sandbox Code Playgroud)
但我收到“无法解析符号日期时间”错误。
我应该怎么办?
假设我有一个包含带有注释的程序的字符串,如下所示:
var iString = "int i; //A variable \n" +
"//This is a text with notes \n" +
"//Can you remove them? \n" +
"cout<<i; //printing i \n"
Run Code Online (Sandbox Code Playgroud)
我创建了一个能识别笔记的正则表达式:
var notes1= ("/"+"(\\s)*"+"/"+"(\\w|[^\\w])*"+"\\n").toRegex()
Run Code Online (Sandbox Code Playgroud)
问题在于写作 var newString = iString.replace(notes1,"")
我接受newString是: "int i; cout<<i \n"
相反,结果是: "int i;"
正则表达式'吞噬'整个字符串直到最后一个"\n"我想要的是每当有机会时结束.
我如何在Kotlin中定义它?