Converter String em array de inteiros

Boa Tarde pessoal! Esse é meu primeiro tópico, estou precisando muito de ajuda *¬¬!

Estou com esse código, que faz a leitura de um arquivo de texto contendo umas entradas, essas entradas são armazenadas em uma string (array_depositos). Queria saber como faço para passar essa string para um vetor de inteiros, cada valor em uma posição do vetor. No código abaixo existe um trecho de conversão mas não consegui usar ele para a outra string. Para quem conhece esse é o problema do “Cofrinho da Vó Vitoria”.

[code]import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Trabalho {

public static void main(String[] args) {

	try {
		//ARQUIVO QUE SERA 'LIDO'
		BufferedReader in = new BufferedReader(new FileReader("entrada1.txt"));
		
		String str;
		String [] array_depositos;
		
		int num_depositos = 0;
		int i = 0;
		
		while (in.ready()) {
			str = in.readLine();
			
			// a primeira linha do arquivo contem o numero de depositos
			if( i == 0)
			{
				//Converte uma string para inteiro
				num_depositos = Integer.parseInt( str );
				
				System.out.println("VOVO FEZ: " + num_depositos + " DEPOSITOS");
				
			}else
			{
				if(i <= num_depositos){
					
					//'quebra' uma string separada por espaco
					array_depositos = str.split(" ");
					
					System.out.println("DEPOSITO: "+ i +": JOAO: " + array_depositos[0] + " ZE: " + array_depositos[1]);
				}
			}
											
			i++;
		}
		in.close();
		
		//REALIZA O PROCESSAMENTO PRA SABER SE VOVO DEPOSITOU MAIS PARA JOAO OU PARA ZEZINHO
		//<COMPLETAR COM O CODIGO>
		
		
		} catch (IOException e) {
			e.printStackTrace();
		}

		

}

}[/code]

Você poderia pegar cada valor(String) e converter para número com o método parseInt da classe Integer.

Eu tentei fazer algo parecido mas não deu certo;

int depositos_int []; depositos_int[0] = Integer.parseInt( array_depositos[0] );

Precisam mesmo ser arrays?

Se forem você precisa inicializar o array de int com o mesmo tamanho do array de String, assim:int[] depositos = new int[array_depositos.length];E depois disso você itera um array passando os valores para o outro.

Obrigado pela ajuda,
Precisa sim;
Mas não deu certo :/, ta falando que a variável array_depositos não foi inicializada, e ela foi mas como array de string.

Isso tem que ser feito depois que você faz o split que inicializa o seu array.

Ok, a parte da inicialização agora deu certo;

mas só esta armazenando a posição [1] do array, olhe como eu fiz:

		[code]	{
				if(i <= num_depositos){
					
					//'quebra' uma string separada por espaco
					array_depositos = str.split(" ");
					int[] depositos = new int[array_depositos.length]; 
					depositos[i] = Integer.parseInt( array_depositos[i] );
					
					System.out.println("DEPOSITO: "+ i +": JOAO: " + array_depositos[0] + " ZE: " + array_depositos[1]);
					System.out.println("DEPOSITO:" + depositos[i]);
				}
			}
											
			i++;
		}[/code]

tem que existir um laço for dentro desse if.

Na verdade não precisa necessariamente ser um for, mas é o que eu sugiro.

Continuou só armazenando a posição [1], mesmo colocando um for, apesar do if estar fazendo o papel do for

Como você fez o for?

[code]{
if(i <= num_depositos){

					//'quebra' uma string separada por espaco
					array_depositos = str.split(" ");
					int[] depositos = new int[array_depositos.length]; 
					
					for(int l=0; l<=num_depositos; i++){
					depositos[i] = Integer.parseInt( array_depositos[i] );
					System.out.println("DEPOSITO:" + depositos[i]);
					}
					
					System.out.println("DEPOSITO: "+ i +": JOAO: " + array_depositos[0] + " ZE: " + array_depositos[1]);
					
				}
			}
											
			i++;
		}[/code]

se você fez o for por ‘l’, você tem que incrementar ‘l’ e usar o índice ‘l’ na atribuição. Cuidado porque você está se confundindo com o índice ‘i’

Obrigado de novo meu caro pela ajuda :);
Mas esta complicado pra mim, o for so pega os dois primeiros valores e eu não consigo tirar ele de dentro desse if

Cara, tem que ser algo assim:[code]String[] arrayDeStrings = outraString.split(" ");
int[] arrayDeInts = new int[arrayDeStrings.length];

for(int l=0; l<arrayDeStrings.length; l++){
arrayDeInts[l] = Integer.parseInt(arrayDeStrings[l]);
}
[/code]

Ohhh cara muito, muito obrigado :D;
agora deu certim!

So falta agora fazer a subtração do valor da posição [1] com [0], [2] com [3] e assim por diante…
Vou ir quebrando a cabeça por aqui

[quote=nedotavio1807]Ohhh cara muito, muito obrigado :D;
agora deu certim!

So falta agora fazer a subtração do valor da posição [1] com [0], [2] com [3] e assim por diante…
Vou ir quebrando a cabeça por aqui[/quote]
Não entendi o que você quis dizer mas tudo bem hehehe…
Qualquer dúvida é só postar aqui.

E para fazer algo parecido com isso:

[code]for(int j=0; j<depositos.length; j++){
dif= dif+(depositos[j+1]-depositos[j]);
System.out.println(“Diferenca:” + dif);

					}[/code]

mas esta dando o mesmo problema de antes.

Você quer comparar os valores? qual o mesmo problema de antes?

Brigadim, já consegui resolver o problema!
Achei muito bom o fórum, respostas rápidas e de qualidade;