Porque você iria querer um vetor só com a palavra Online? Se você só quer a palavra Online, basta saber se ela está na string ou não, certo?
int posicao = frase.indexOf("Online") // posicao eh o indice onde a palavra Online aparece na frase. Se for -1, frase nao contem a palavra Online
if (0 <= posicao) /* a palavra esta na frase */
else /* a palavra nao esta na frase */
Se quiser fazer buscas mais complexas, dá uma olhada em regular expressions.
Então no meu código eu estou lendo um arquivo em PDF e preciso separar várias informações que estão no meu arquivo e essas informações estão em várias partes do arquivo lido,
Então qual é a melhor forma de eu separar só essas palavras que estão em meu arquivo?
Vou te dar um exemplo, no meu arquivo que foi lido tem a palavra valor bruto e o valor, eu preciso pegar só esse valor, como seria para pegar só esse valor?
public static void main(String[] args) {
String frase = "Bla bla bla bla bla valor bruto: 250.0 bla bla bla bla bla";
Pattern pattern = Pattern.compile("valor bruto: (\\d+\\.\\d+)");
Matcher matcher = pattern.matcher(frase);
if (matcher.find()) {
float valorBruto = Float.valueOf(matcher.group(1));
System.out.printf("Achei o valor bruto: %.2f%n", valorBruto);
} else {
System.out.println("Nao achei o valor bruto");
}
}
Pra fazer isso tem que saber como usar regular expressions. Dá uma pesquisada na Internet, tem bastante material. Procura “expressões regulares em Java”
Ivbarbosa estou estudando aqui…usando o seu exemplo de frase, no meu caso o valor tem uma , ao invés de .
String frase = “Bla bla bla bla bla valor bruto: 250,0 bla bla bla bla bla”;
Vi que o . (ponto) busca qualquer caractere, mais ele não esta buscando…como resolver ?
O ponto na regex que eu postei está escapado, o que significa que ele só vai dar match no ponto literalmente. Tenta "\\d+,\\d+". Mas essa regex é muito ingênua, tem que ver qual o formado esperado de dados no seu PDF e fazer a regex certa.
Cara, isso não ajuda em nada e não agrega.
Existem situações que parecem tranquilas, simples, porém, acabam por trazer muitas complicações, principalmente quando você não tem um conhecimento bom sobre as ferramentas que vai ou deve utilizar.
Em geral, estas situações não possuem uma resposta simples. É muito comum que você precise adaptar duas, três, cinco ideias diferentes para conseguir encontrar a solução.
Split funciona? Sim. Para isso, você precisa ter certeza dos pontos de quebra.
Regex funciona? sim. Para isso, você precisa entender como as expressões regulares funcionam.
Uma solução bemmmmmmmmmmmmmmmmmmmmmm arcaica seria o uso de indexOf e suas variantes, em conjunto com substrings e, por que não, split:
Supondo que o teu texto seja, apenas: “Impostos 1,06 D” (com espaços e tudo).
String linha = "Impostos 1,06 D";
String oValor = linha.substring(linha.indexOf("Impostos ") + "Impostos ".length(), linha.length());
String soOValor = oValor.substring(0, oValor.indexOf(" D"));
System.out.println("Total de impostos: " + soOValor);
// Total de impostos: 1,06
Obviamente, você vai precisar adaptar isso ao que você quer ler e, principalmente, a cada linha/valor que deseja.