Amigos,
Tenho um arquivo com várias linhas, algumas String que começa com (01+alguma coisa)
Exemplo: “013475934657836487563487563”
caso a linha começa com 01 quero fazer alguma coisa, por isso criei uma variável que recebe a substring(0,2) no caso recebe 01.
mas quando uso o IF para saber se a variável é ==“01” o sistema entede que é diferente? porque?
File file = new File(fileName);
Scanner scanner = new Scanner(file);
scanner.useDelimiter("\z");
while(scanner.hasNext()){
linha = scanner.next();
valida = linha.substring(0,2);
if (valida == "01"){
processo = linha.substring(3,12);
System.out.println(processo);
}
Ola… compare Strings utilizando o metodo “equals()”. Assim:
valida.equals("01");
O sinal “==” é usado para comparar apenas variáveis primitivas que são 8:
long, int, byte, short, double, float, boolean, char.
repare que o tipo String não faz parte disso, pois uma String não é uma variável primitiva, ela é um objeto(“variável” do tipo Object). E pra saber se um objetco é igual ao outro(comparar), ao inves de usar o “==” é usado um método que é exatamente o que foi dito por billymort. (equals).
Certo?
== compara conteudo de variaveis e String é objeto, portanto, faça como já falaram aí pra comprar objetos.
E essa logica sua pode ficar mais simples, assim:
while(scanner.hasNext()){
linha = scanner.next();
if(linha.startsWith("01")){
processo = linha.substring(3,12);
System.out.println(processo);
}
}
Galera, Muito Muito Muito Obrigado mesmo!
Agora, como falo para colocar estes dados em uma array list com os dados do processo?
é quero ler um arquivo que existe várias linhas com informações de vários processos:
Processo:
Data emissão do processo.
Data de Conclusao.
Cliente, etc
gostaria de colocar em uma array para depois percorres esta array para saber os dados por processo
Você poderia fazer assim:
public class Processo{
private Date emissao;
private Date conclusao;
private Cliente cliente;
// get & set
}
Depois você desmembra essa sua String, cria um objeto Processo com ela, e adiciona o objeto em uma coleção.
jairelton,
ja desmembrei a string em vária variáveis(porcesso, datas, cliente etc).
agora gostaria de saber criar um objeto onde recebe todos os dados e depois como criar uma coleção.?
Algo + ou - assim:
[code]List processos = new ArrayList();
//loop
Processo proc = new Processo();
proc.setEmissao(dataEmissao);
proc.setConclusao(dataConclusao);
//…
processos.add(proc);[/code]