Primeiro.... se tu quer comparar os numeros repetidos tu precisa que os numeros sejam inteiros e não strings certo. Então, primeiro, mantém o teu String num para receber a entrada e o teu int n1 para transformar essa string em um número depois. Coloquei (declarei instanciei e iniciei) um vetor de numeros de 4 posições também: por que ? por que antes, toda vez que tu passava pelo "for", tu sobrescrevia a tua string num e perdia as informações que foram colocadas antes. Se tu quer manter essas informações tu vai precisar do array para guardar elas em cada posicao.
String num;
int n1;
int[] numeros = {0,0,0,0};
Segundo... Ok. Resolvi um problema e te dei outro: como é que tu vai fazer ler.next() e jogar essa entrada para dentro de uma posicao do teu vetor de inteiros, se o java diz que tu só pode jogar um ler.next() para dentro de um string? Ok. Vou te mostrar como o Integer.parseInt funciona:
for ( int i=0; i<4; i++) {
System.out.print("Ingresse um numero: ");
num=ler.next(); // até aqui igual como estava antes
try {
n1 = Integer.parseInt(num); /* nessa linha eu faço o seguinte:
pego num (String) mando pro método "Integer.parseInt" e o método manda de volta
pra mim um inteiro, e eu jogo esse inteiro pra dentro de n1 (int). Legal ! Mas
isso sempre funciona ? E se alguém escrever "abóbora" e essa entrada for para num,
o método vai me devolver um número? pois é... abóbora não é um número. nem tudo é
perfeito. então, toda vez que alguém escrever algo que não seja um número o método
vai bugar. Só que ao invés de deixar o método bugar eu sou mais esperta: vou mandar
ele só imprimir a mensagem de erro a seguir e ignorar o erro, e continuar rodando. */
} catch (NumberFormatException error) { /* o catch "pega o erro" antes
que o método bugue, e ao invés de deixar o método bugar e ferrar com o meu programinha,
eu só imprimo a minha mensagem de erro e o programa segue*/
System.out.println("Erro! A entrada deve ser um NÚMERO: como 1.");
}
/* certo. agora que eu já consegui fazer o aboboromaníaco escrever um número eu coloco
esse número dentro do meu vetor de inteiros, para não perder ele numa sobrescrição.*/
numeros[i] = n1;
}
Terceiro... agora é fácil. é só comparar o numero de cada posicao do vetor com o numero de todas as posições do vetor e ir guardando os que estão repetidos (em uma variavel nova) e quantas vezes se repetiram. Dica: use dois "for"s. Depois me mostra como ficou, se tu conseguiu ou não, que eu te ajudo de novo.