Galera, estou tentando fazer um programa que pegue números de uma String através do getText() e salve em um vetor do tipo int, para que depois eu possa realizar operações com os números nas posições. Não estou conseguindo! Meu código está assim (considere que todas as variaveis foram declaradas):
Evite usar “while” com incremento de índice. Não deixa seu programa mais rápido e é mais complicado de entender. Se quiser, use um for com várias condições de continuação (estou dando um exemplo abaixo, mas obviamente não é a solução do seu problema acima) :
for (int i = 0; i < nums.length || nums[i] != null; ++i) {
}
A operação matemática eu sei fazer. Botei aquela saída ali para testar se está sendo construído o vetor numi[].
Minha dificuldade é somente quebrar a String e colocar os números no vetor. Por exemplo, entro no campo de texto os valores “20 30 40 50 60” separados por espaço. Quero quebrar os números e fazer o seguinte.
O código continua a não escrever nada na saída e está dando erro nessa declaração (non-static variable nums cannot be referenced from a static context):
public static void main(String args[]) {
int numi[]= new int[nums.length];
...
Por que é que você ainda está usando a comparação com null? Eu só dei um exemplo do que pode ser feito, não que isso iria resolver seu problema.
Você pode deixar uma variável declarada mas deixar a criação do objeto (array) que vai ser usado com essa variável para depois. Você pode fazer algo como:
...
int numi[]; // neste ponto ele não tem nada, tome cuidado porque ele só vai ter alguma coisa mais tarde.
...
string = jTextField1.getText();
nums = string.split(" "); // note que split não deixa nenhum elemento vazio (== null), portanto não precisa testar contra null
// agora você sabe qual é o tamanho certo de nums, portanto você sabe o tamanho de numi.
numi = new int[nums.length];
for(int i=0; i<nums.length; i++){
numi[i] = Integer.parseInt(nums[i]);
jTextField2.setText(jTextField2.getText()+numi[i]+" ");
}
}