2016-02-13 37 views
2

我想將所有本體類名稱都帶到一個數組中。我使用下面的代碼。它打印輸出爲一個類[http://localhost/new/Car Price]。但我只需要取得班級名稱Car Price。我需要做些什麼改變?使用Java從.owl文件中將所有本體類從一個ArrayList中取出

    m.read("http://localhost/new/sample.owl"); 
        ExtendedIterator<OntClass> classes = m.listClasses();  
        public String extractName() { ----------------error: Syntax error on token "String", @ expected 
        while (classes.hasNext()) { 
         OntClass all= (OntClass) classes.next(); 
         String cla = all.toString(); 
         String members[] = cla.split("/"); 
         nameIndex = members.length - 1; 
         return member[nameIndex]; 
         }            
         OntClass all= (OntClass) classes.next(); 
         System.out.println(all.extractName()); 
         } 

回答

1

您正在用列表classlist進行打印,因此,您在輸出中看到[]。

如果你的價值的格式包含並始終單獨由/,你可以創建一個輔助方法爲:

public static String extractName(OntoClass ontoClass) { 
    String members[] = ontoClass.toString().split("/"); 
    nameIndex = members.length - 1; 
    return members[nameIndex]; 
} 

,你在該行打印該抽出的名字:

OntClass all= (OntClass) classes.next(); 
System.out.println(extractName(all)); 
+0

謝謝你的回覆。我添加「cla」而不是「http:// localhost/new/Car Price」。它在「public String extractName()」中給出了「令牌上的語法錯誤」字符串「@ expected」中的錯誤。我需要改變的地方? – Leel

+1

你應該在助手方法或this.toString()中使用與你的值相關的類的成員,或者this.toString() –

+1

你應該把輔助方法作爲你的類的成員OntClass –

相關問題