Problema com IF

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]