这是一个 FreePlane Groovy 代码。任务是提取节点详细信息并将其转换为整数,或者如果详细信息为空(空)或非数字,则将其保留为 1。最初,节点详细信息在纯文本布局中仅包含“4”。
这是我的代码:
def getRepetitions(node)
{
if (node.details!=null){
node['node.details']=node.details
node['node.details.size()']=node.details.size()
node['getPlain()']=node.details.getPlain()
node['getPlain().size()']=node.details.getPlain().size()
node['node.details.status']='not null'
getRepetitions=(double)(node.details.getPlain())-48
}else{
node['node.details.status']='null'
getRepetitions=1
}
}
这是一个问题,因为代码不会将文本“4”转换为 4,而是转换为 52(顺便说一下,“4”的 ASCII 代码)。更糟糕的是,当我减去 48,使得差值等于数字本身时,它不会注意。
如果诸如 toNumber(...) 或 .to.num0 之类的功能可以使用,我不会发布此内容,但是在尝试实现此功能时,我看到了
“消息:方法没有签名:org.freeplane.plugin.script.proxy.Proxy$NodeRO.toNumber() 适用于参数类型:(java.lang.String) 值:[4] 行号:-1Result:No方法签名:org.freeplane.plugin.script.proxy.Proxy$NodeRO.toNumber() 适用于参数类型:(java.lang.String) 值:[4] at line -1"
提前致谢。