[Resolvido][Duvida] Contar os numeros de um vector em java

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

[Resolvido][Duvida] Contar os numeros de um vector em java

Mensagempor m.offspring.r » Sábado Fev 23, 2008 15:29

Boas pessoal.

Tenho uma dúvida mesmo no fim de um exercício... Este exercício pede um numero ao utilizador e diz quantos dígitos tem esse numero.

Até aqui tudo bem, o que eu não estou a conseguir fazer é a contagem dos dígitos do numero... Abaixo deixo o código que tenho feito até agora:

Código: Seleccionar todos
import java.util.*;

public class exercicio
{
    public static void main(String[] args)
    {
        Scanner keyboard = new Scanner (System.in);
       
        //variaveis
        int i, valor, soma;
       
        System.out.print("\n");
       
        //pede um valor ao utilizador e guarda-o
        System.out.print("Digite um numero: ");
        valor = keyboard.nextInt();
       
        //cria um vector com o numero digitado
        int[] vector = new int[valor];
       
        //inicia o contador dos digitos
        soma = 0;

        //verifica a quantidade de digitos do numero
        for(i=0; i<vector.length; i++)
        {
            //contar os digitos... E DAQUI QUE NAO PASSO!!
        }
       
        //mostra o resultado
        System.out.print("\nO numero tem " + soma + " digito(s).\n\n");
    }
}


Criei a variável soma apara contar o numero de dígitos que o numero tinha...

Toda a ajuda era bem vinda... Era não, é bem vinda :lol:
Editado pela última vez por m.offspring.r em Sábado Fev 23, 2008 18:56, num total de 1 vez.
m.offspring.r
Aprendiz
Aprendiz
 
Mensagens: 21
Registado: Sexta Fev 15, 2008 19:19

Mensagempor Moebius » Sábado Fev 23, 2008 16:01

Alternativa completamente oposta.

Porque não colocar o valor lido em um String e depois utilizar o metodo length() dos tipos String?
Acer 7720G - Core 2 Duo T5250 - 2048 Mb RAM - 250 GB HD - 17" WXGA - nVidia Geforce 8400M GS 256 Mb
Shortly will be running on Ubuntu Gnome, Firefox and Thunderbid
Moebius
Membro de Prata
Membro de Prata
 
Mensagens: 136
Registado: Segunda Out 06, 2003 18:28
Localização: Lisboa ou Madeira, conforme o mês do ano

Mensagempor Moebius » Sábado Fev 23, 2008 16:03

Já agora:
Código: Seleccionar todos
//cria um vector com o numero digitado
        int[] vector = new int[valor];


Não estás a criar, primeiro um vector mas sim um array, e segundo, estás a inicializar o array com o tamanho igual ao tamanho digitado. Efectivamente não estás a preencher o array com valores, mas sim a definir apenas o tamanho máximo que esse array pode possuir.
Acer 7720G - Core 2 Duo T5250 - 2048 Mb RAM - 250 GB HD - 17" WXGA - nVidia Geforce 8400M GS 256 Mb
Shortly will be running on Ubuntu Gnome, Firefox and Thunderbid
Moebius
Membro de Prata
Membro de Prata
 
Mensagens: 136
Registado: Segunda Out 06, 2003 18:28
Localização: Lisboa ou Madeira, conforme o mês do ano

Mensagempor m.offspring.r » Sábado Fev 23, 2008 16:17

ja ando as aranhas com isto... nem pra tras, nem pra frente...
m.offspring.r
Aprendiz
Aprendiz
 
Mensagens: 21
Registado: Sexta Fev 15, 2008 19:19

Mensagempor vamosAeles » Sábado Fev 23, 2008 17:35

dude, faz o que o Moebius disse:

valor = keyborad.nextInt();
numDigitos = String.valueOf(valor).lenght();

[[]]
vamosAeles
Membro de Prata
Membro de Prata
 
Mensagens: 206
Registado: Quarta Jan 04, 2006 21:29
Localização: Lisboa/Proença

Mensagempor m.offspring.r » Sábado Fev 23, 2008 18:52

Ta feito.

Não é "numDigitos = String.valueOf(valor).lenght(); ", mas sim "numDigitos = String.valueOf(valor).length()"... o th é que estava trocado :lol:


Thanks pelas dicas.
m.offspring.r
Aprendiz
Aprendiz
 
Mensagens: 21
Registado: Sexta Fev 15, 2008 19:19

Mensagempor alfatek » Sexta Fev 29, 2008 19:45

é uma alternativa, passar para String e contar assim.

mas muitas vezes este tipo de exercicios são usados em cadeiras de introdução à programação em Java e não deves usar String mas sim uma forma mais "artesanal"

Basicamente tens de usar ciclos, divisão por 10 e resto da divisão por 10 (%). Agora é pensar um bocadinho.... o que acontece quando fazes a divisão inteira por 10?

123 / 10 = 12
12 / 10 = 1
1 / 10 = 0

etc...
alfatek
Administrador
Administrador
 
Mensagens: 3257
Registado: Sábado Abr 06, 2002 18:28
Localização: Coimbra


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 8 visitantes

cron