Boa tarde a todos.
Estou enfrentando o seguinte problema.
Preciso pegar o conteudo de uma String porém preciso delimitar o inicio dela, para isso esto usando Pattern e Matcher.
O problema é como eu faço para o programa entender que chegou ao fim da linha?
Segue abaixo o código que desenvolvi até o momento. Desta forma ele não funciona.
//Vetor para delimitar o DEPOIS que eu quero caputurar.
String[] vetor = new String[]{"Objeto:",
"Edital:",
"Nº ConLicitação:",
"Datas:",
"Observação:",
"Unid. Licitante:",
"Endereço:",
"CEP:",
"Cidade:",
"Fone:",
"Homepage:"};
BufferedReader bfRead = leituraArquivo();
String strLine;
//Lista que irá conter o inteiro demarcando o inicio e o fim do arquivo.
List<Integer> listaInicio = new ArrayList<Integer>();
List<Integer> listaFinal = new ArrayList<Integer>();
//String delimitadora entre um objeto e outro.
Pattern pattern = Pattern.compile("_");
while ((strLine = bfRead.readLine()) != null) {
Matcher matcher = pattern.matcher(strLine);
//Caso encontre o sublinhado, que define a finalização do preenchimento do objeto.
if(!matcher.find()){
//Armazenamos de acordo com o valor encontrado na linha lida
//no objeto correspondente.
//Instanciando os objetos Conlicitação e DAO
Conlicitacao conli = new Conlicitacao();
ConlicitacaoDao dao = new ConlicitacaoDao();
//Faz a busca na linha de cada valor do vetor
//para verificar se existe alguma das palavras que necessitam estar nele.
for(int i = 0; i <= vetor.length; i++){
Pattern pStart = null;
Pattern pEnd = null;
if(i < vetor.length){
pStart = Pattern.compile(vetor[i]);
pEnd = Pattern.compile("-1");
}else{
pStart = Pattern.compile(vetor[i]);
pEnd = Pattern.compile("_");
}
Matcher mStart = pStart.matcher(strLine);
Matcher mEnd = pEnd.matcher(strLine);
if (i == 0) {
while (mStart.find()) {
listaInicio.add(mStart.end());
}
while (mEnd.find()) {
listaFinal.add(mEnd.start());
}
//Exibindo a String com o conteudo.
JOptionPane.showMessageDialog(null, strLine.substring(listaInicio.get(0), listaFinal.get(0)));
conli.setConObjeto(strLine.substring(listaInicio.get(0), listaFinal.get(0)));
}
Agradeço a todos que responderem.
Sem mais.