Problema com Array

é o seguinte quero fazer com que no textArea só exiba valores sem ser repetidos…

então fiz esse método para verificar só que não está dando certo alguem ai tem uma solução? sem usar colections pois, é para trabalho de facu e e meu professor não aceita…

public String verificar(int i,int b){

        if (i <= 19) {
             
            System.out.println(i);  
            
            array[i] = b;
            System.out.println(array[i]);
            for (int j=0; j<array.length;j++) {
                             
                if ((array[i]) != (array[j])) {
                    d += array[i] + "\n";
                }
            }
        }
             
        return d;
}

ola caro amigo!!

vi seu codigo e tentei compilar JCreator e ele da um erro na primeira linha
public String verificar(int i,int b){ // ele pede uma classe ou interface .

bom pelo pouco que sei vc esta trabalhando com Array não é verdade? pelo que basicamente vi que vc delarou na primeira linha que vc quer retornar valores de tipo literal Ok? e vc inicializaou com tipos inteiros acho que o conflito esta ai ele sempre acusa que o erro ta na linha um vc pode tb utilizar o metodo to string que me parece que converte valores(int e etc… para String) por que vc colocou public String se vc inicializou com(int a, int b) ? vc poderia colocar o void no lugar do String e vc compilar o resto de sua aplicação!!

pode ser outra coisa mais avançada pois não tenha conseguido enxergar, me desculpe pois sou iniciante e espero minha resposta não seja a certa mais um caminho , pra vc mesmo dedectar o erro e espero que tenha te ajudado.

um abraço e sucesso
:slight_smile:
karlota

Amiga, valeu por responder, mas o programa tá funcionando o unico problema é que ele não faz o que eu quero que é o seguinte…

quando a pessoa tentar entrar com valor repetido não pode mostrar…

segue o codigo completo para você ver que funciona a applet:

import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class Ex13 extends JApplet implements ActionListener{

JLabel lbl1;
JTextField txt1;
JButton bt1;
JTextArea outputArea;
JScrollPane barra;
int array[ ];
int i = 0;
String d = "";
    
public void init(){

    Container container = getContentPane();
    container.setLayout( new FlowLayout() );
    
    array = new int[19]; 
    
    lbl1 = new JLabel("Digite um valor");
    container.add(lbl1);
    txt1 = new JTextField(10);
    txt1.addActionListener(this);
    container.add(txt1);
    
    bt1 = new JButton("OK");
    bt1.addActionListener(this);
    container.add(bt1);
    
    outputArea = new JTextArea(10,12);
    barra = new JScrollPane( outputArea);
    container.add(barra);

}

public void actionPerformed( ActionEvent e){

    if (e.getSource() == bt1){
    
        String a = "" + txt1.getText();
        int b = Integer.parseInt( txt1.getText());
        
        if ((a.equals("")) || (b<10) || (b>100)){
        
            showStatus("Digite um valor válido");
        
        } 
        else{
        
            showStatus("");
            outputArea.setText("" + verificar(b)); 
                        
        }
    
    }

}

public String verificar(int b){
        
        int j=0;
        i +=1; 
        if (i <= 19){
             
            System.out.println(i);  
            
            array[i] = b;
            System.out.println(array[i]);
            while (j<array.length) {
                             
                if ((array[i]) != (array[j])) {
                    d += array[i] + "\n";
                    j = array.length+1;
                    
                }
                j++;
            }
        }
             
        return d;
}

}

Caro West não sou experiente na área mas pelo o que eu entendi, acho que se você colocar um for dentro de outro resolverá o seu problema.

um for que abrigará o outro, sendo que o for que englobará o outro seria incrementado após ter passado pelo for interno.

Caso tenha ficado complicado a minha explicação, verei uma forma melhor.

Valeu espero ter ajudado.

Conseguimos resolver o problema… segue o codigo…

Valeu pela força…

import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class Ex13 extends JApplet implements ActionListener{

JLabel lbl1;
JTextField txt1;
JButton bt1;
JTextArea outputArea;
JScrollPane barra;
int array[ ];
int i = 0;
String d = "";
    
public void init(){

    Container container = getContentPane();
    container.setLayout( new FlowLayout() );
    
    array = new int[19]; 
    
    lbl1 = new JLabel("Digite um valor");
    container.add(lbl1);
    txt1 = new JTextField(10);
    txt1.addActionListener(this);
    container.add(txt1);
    
    bt1 = new JButton("OK");
    bt1.addActionListener(this);
    container.add(bt1);
    
    outputArea = new JTextArea(10,12);
    barra = new JScrollPane( outputArea);
    container.add(barra);

}

public void actionPerformed( ActionEvent e){

    if (e.getSource() == bt1){
    
        String a = "" + txt1.getText();
        int b = Integer.parseInt( txt1.getText());
        
        if ((a.equals("")) || (b<10) || (b>100)){
        
            showStatus("Digite um valor válido");
        
        } 
        else{
        
            showStatus("");
            outputArea.setText("" + verificar(b)); 
                        
        }
    
    }

}

public String verificar(int b){
        
        boolean c = true;
        
        if (i < 19){

            array[i] = b;
            
            for(int j=i-1;j>=0;j--) {
                             
                if ((b == array[j]) && (c)) {
                    c = false;
                    i +=1; 
                }
            }
            
            if (c) {
                d += array[i] + "\n";
                i +=1; 
            }
        }
        
        else {
            JOptionPane.showMessageDialog(null,"Erro","MSG",JOptionPane.ERROR_MESSAGE);
        }
        
        i +=1; 
             
        return d;
}

}