【发布时间】:2014-04-30 02:00:27
【问题描述】:
拜托,我正在做一个项目,我必须遍历 RDF(海龟格式)并找到可以存储该行前面的行的特定行。基本上,我是将每个遍历线与字符串进行比较:
"[a sswap:Subject , d:investment;"
。我尝试了 contains() 方法和 equals() 方法,但都不起作用。为此,我编写了一个简单的 Java 代码。唯一的问题是即使它到达了所需的行,它也不会进入 for 循环来执行。这意味着布尔值是错误的,但为什么呢?有人可以解释一下我可能做错了什么吗?
.
.
.
if(line =="[ a sswap:Subject , d:investment ;"){
do{
for (int i = 0; i < line.length(); i++) {
if (line.charAt(i) == ';') {
arr.add(line); //an arraylist
}
}
line = it.nextLine(); //loop to the next line
//traverse through the characters in the line
//if the last character is ";"
//store that line.
}while(line!="]");
.
.
.
下面是海龟中我试图检查 java 代码的 if 语句的行。
sswap:operatesOn [
rdf:type sswap:Graph ; sswap:hasMapping [
rdf:type sswap:Subject, d:investment; //trying to capture this..
【问题讨论】:
-
@IwishIcouldthinkofagood 正如他所说,他使用了 equals
-
@Rod_Algonquin 你说的太对了。
-
您执行此操作的方式(处理文件的文本)与 Jena 或 RDF 没有任何关系。执行此操作的基于 RDF 的方法是请求资源 s,以便图形包含两个三元组:
s rdf:type sswap:Subject和s rdf:type d:investment。使用 Jena 做到这一点并不难。你想要一个解决方案来解决 Jena 的问题吗?