我在这个 Java 代码中使用 Stardog:
Connection aConn = ConnectionConfiguration
.to("")
.server("http://localhost:5820")
.database("TP_OntologiasEjecutado")
.credentials("admin", "admin")
.connect()
.as(Connection.class);
SelectQuery selectQuery = aConn.select(
"SELECT DISTINCT ?Libreta ?Puntaje \n"+
"WHERE{ \n"+
"?Alumno a :PostulanteABecaAdmisible. \n"+
"?Alumno :cantidadMateriasAprobadasCicloLectivoAnterior ?matAnterior. \n"+
"?Alumno :promedioAlumno ?Promedio. \n"+
"?Alumno :numeroLegajo ?Libreta. \n"+
"?Alumno :medicionFinal ?Puntaje. \n"+
"?Alumno :seInscribeAConvocatoria ?conv. \n"+
"?conv :anioConvocatoria ?anioConv. \n"+
"FILTER (?anioConv = "+anio+"). \n"+
"FILTER (?Promedio >= "+promedio+"). \n"+
"FILTER (?matAnterior >= "+materias+"). \n"+
"} \n"+
"ORDER BY DESC (?Puntaje)"
);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
SelectQueryResult selectQueryResult = selectQuery.execute();
try{
QueryResultWriters.write(selectQueryResult, stream, HTMLQueryResultWriter.FORMAT);
} catch (IOException e) {
System.out.println("ERROR");
}
这会生成我在 JPanel 中的 JLabel 中显示的 HTML 代码,这是我得到的代码示例: HTML 代码和结果
这是在 Notepad++ 中打开 HTML:
<html>
<head><meta content="text/html;charset=UTF-8"/></head>
<body>
<table border=1>
<tr>
<th>Libreta</th>
<th>Puntaje</th>
</tr>
<tr>
<td style="text-align:left;vertical-align:top">23806</td>
<td style="text-align:left;vertical-align:top">"67.75"^^<http://www.w3.org/2001/XMLSchema#float></td>
</tr>
<tr>
<td style="text-align:left;vertical-align:top">123456</td>
<td style="text-align:left;vertical-align:top">"66.6"^^<http://www.w3.org/2001/XMLSchema#float></td>
</tr>
</table>
</body>
所以我需要删除 ^^<http://www.w3.org/2001/XMLSchema#float>。我可以删除网址:
String finalString = new String(stream.toByteArray()).replaceAll("http://www.w3.org/2001/XMLSchema#float","");
但我不能删除 ^^<> 部分,因为它们是特殊字符。我怎样才能删除它们?