Como reservar espaço para um valor desconhecido?

Boa noite pessoal.

Enunciado do exercicio
[color=blue]Escreva uma aplicação que receba do usuário uma frase no seguinte formato N-N-N…-N-N-N( representando números inteiros separados por hífen), extraia esses números dessa frase e crie e alimente um vetor de tamanho exato a quantidade de números.[/color]

Minha duvida esta em reservar o espaço para que o usuário vai digitar os números, como o exercício diz o usuário pode entrar com a quantidade de números que ele desejar

Obrigado pela atenção :lol:

Ué… se é uma frase nesse formato, prq vc haveria de reservar espaço? Simplismente o exercicio ta pedindo que vc receba uma frase nesse formato e faça o array o que é extremamente simples. Se for um String:


String frase = "1-2-3-4-5-4-5";
String arrayDeNumerosString[] = frase.split("-");

//Se for transformar o array em inteiros faça um loop e va transformando.

Exercício explorando o conceito de alocação dinâmica? :slight_smile: Solução proposta:

1 - Percorra a String e determine quantos elementos ela contém;
2 - Crie um array com a quantidade de elementos encontrada no primeiro passo;
3 - Preencha o array percorrendo a String novamente.

1- Se for como vc falou, a String tem o seguinte formato, por exemplo: “1-3-4-5-6-10”.

Você vai dar um split nela pra tirar os hifens e criar o array da seguinte forma:


String frase =  "1-3-4-5-6-10";
String arrayFrase[] = frase.split("-");

2 - Crie um array com a quantidade de elementos encontrada no primeiro passo;
[color=red]Esse split já criou um array com todos os numeros, retirando os hifens. O codigo abaixo só vai reinventar a roda… mas… vai la [/color]

String array[] = new String[arrayFrase.length - 1]

3 - Preencha o array percorrendo a String novamente.

for(int i=0; i <= array.length; i++)
    array[i] = arrayFrase[i];

adrian: mas a idéia É justamente reinventar a roda :slight_smile: É um exercício sobre alocação dinâmica, o aesbragantino provavelmente quer aprender o princípio por trás da técnica, então, em vez de dar a resposta pronta (usar String.split()), julguei mais didático explicar como fazer “manualmente”.