2015-08-31 49 views
0

這是一個FreePlane Groovy代碼。 任務是提取節點詳細信息並將其轉換爲整數,如果詳細信息爲空(空)或非數字,則將其保留爲1。最初,節點詳細信息僅包含純文本佈局中的「4」。FreePlane節點詳細信息提取和鑄造

這裏是我的代碼:

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)values:[4]行號:-1Result:沒有方法的簽名:org .freeplane.plugin.script.proxy.Proxy $ NodeRO.toNumber()是適用於參數類型:(java.lang.String中)的值:[4]線-1"


提前致謝。

回答

0

它看起來像你可以得到這樣的數字:node.details.num

在錯誤中提到的代理是this接口。這會告訴你哪些方法可用於你的節點。

getRepetitions=x有什麼關係?這看起來像VB代碼。 Groovy相當於return語句(或表達式)。

+0

我已經解決了這個問題:我不得不使用node.details.getPlain()方法獲取文本,然後使用.toInteger()方法獲取數字。 無論如何,謝謝。 – user3036878