public void lerPdf() {
File arquivoPDF = new File(this.caminhoPdfs);
FileInputStream arquivo = null;
try {
arquivo = new FileInputStream(arquivoPDF);
} catch (IOException e) {
JOptionPane.showInputDialog("ERRO:" + e.getMessage());
}
PDDocument pdfDocument = null;
try {
PDFParser parser = new PDFParser(arquivo);
parser.parse();
pdfDocument = parser.getPDDocument();
PDFTextStripper stripper = new PDFTextStripper();
this.conteudoPdf = stripper.getText(pdfDocument);
this.conteudoPdf.toUpperCase(); // não passa para upper case
this.conteudoPdf.replace("\n", ""); //não troca
} catch (IOException e) {
JOptionPane.showInputDialog("ERRO: Não pode abrir o fluxo" + e);
} catch (Throwable e) {
JOptionPane.showInputDialog("ERRO: Ocorreu um erro ao obter o conteúdo do PDF" + e);
} finally {
if (pdfDocument != null) {
try {
pdfDocument.close();
} catch (IOException e) {
JOptionPane.showInputDialog("ERRO: Não pode fechar pdf" + e);
}
}
}
}
No código acima eu leio um arquivo .pdf e tento passar todo o conteúdo para upper case, só que não funciona. Tentei também dar um .replace() só que não altera.
Alguém ai sabe o que é que está errado?
String teste = "BlalBlAAlaa";
teste = teste.toUpperCase();// deixa a veriável teste em uppercase
teste = teste.replace("la","ca"); // troca todos os la por ca
teste = teste.toUpperCase().replace("LA","XU");//deixa toda a frase em uppercase para trocar todos os LA por XU
A respeito do .replace("\n" , " ") é que eu tenho que tirar todas as quebras de linha do pdf, pois algumas frases ele não consegue verificar por causa da quebra de linha. Não sei se essa é a forma correta de se fazer, mas foi a que eu encontrei.
Uma expressão regular para uma String que aceite somente números, por exemplo:
String number = "1010a5";
boolean result = number.matches("[0-9]+");
Bem simples, se for ‘true’ significa que a String está de acordo com sua expressão regular, nesse caso, contém apenas números e ‘false’, caso contrário.
Exemplos: