2016-02-13 34 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 –

相关问题