Salve.
Ho da eliminare una stringa da un file di testo.
Il file di testo è caricato in un StringBuffer.
ora, il codice che ho fatto io è:
ora l'output mi da:codice:tringBuffer sb; try { sb = getPDFText(new File("Z:\\a.pdf")); String s1 = "Questa è la sotto stringa che devo eliminare"; int pos=1; int i=sb.indexOf(s1); String finale=""; while ((i>=0 && pos >=0)) { System.out.println("i " + i + " pos "+pos ); finale+=sb.substring(pos,i); pos=i+s1.length(); sb=new StringBuffer(sb.substring(pos,sb.length())); i=sb.indexOf(s1); } } catch (IOException ex) { ex.printStackTrace(); }
dove riga 57 ècodice:INFO: Deriving Type3 font information when necessary: yes i 46 pos 1 i 1519 pos 132 i 7082 pos 1605 i 4463 pos 7168 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -2705 at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:882) at java.lang.StringBuffer.substring(StringBuffer.java:417) at leggerepdf.LeggiPDF.<init>(LeggiPDF.java:57) at leggerepdf.LeggiPDF.main(LeggiPDF.java:77) Java Result: 1
ora, è un problema di idea dell'algoritmo o di memoria tipo overflow ecc?codice:finale+=sb.substring(pos,i);
grazie

Rispondi quotando