我需要将字符串拆分两次才能在 OWL 文件上应用指标。第一次没问题,数组部分有两个元素,但第二次数组firstDataSet为空,我收到此错误:线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:1.有什么帮助吗?
String line;
String[] parts = new String [4];
String[] firstDataSet = new String [4];
String[] secondDataSet = new String [4];
double externalSameAsCounter = 0;
double externalEdgeCounter = 0;
double ratio = 0;
try{
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
line = br.readLine();
while ((line = br.readLine())!= null ){
if(line.contains("->") && line.contains(".")){
parts = line.split("->");
firstDataSet = parts[0].split(".");
if(parts[1].contains("http")){
secondDataSet = parts[1].split(".");
}
if(((firstDataSet[1].toLowerCase()).contains(secondDataSet[1].toLowerCase()))){
externalEdgeCounter = externalEdgeCounter + 1;
}
}
if(line.contains("owl:sameAs")){
parts = line.split("->");
firstDataSet = parts[0].split(".");
secondDataSet = parts[1].split(".");
if(!((firstDataSet[1].toLowerCase()).contains(secondDataSet[1].toLowerCase()))){
externalSameAsCounter = externalSameAsCounter +1;
}
}
}
}
catch (FileNotFoundException ex){
System.out.println(
"Unable to open file");
}
catch(IOException ex) {
System.out.println(
"Error reading file");
}
ratio = (double)(externalSameAsCounter / externalEdgeCounter);
return ratio;
最佳答案
在第二个 if
block 中,您在 "->"
上进行拆分,但您不能保证字符串包含该子字符串,因为您检查的只是是否字符串包含“owl:sameAs”
。
关于java - 将字符串分割两次,但第二次出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27571737/