Dúvida Básica

10 respostas
rodrigosan171

Caros colegas,

Estou engatinhando nessa nova linguagem maravilhosa, desculpem a pergunta ingênua mas gostaria de saber se em java tem como fazer isso.
Por exemplo:

Em portugol eu posso dizer:

Escreva "Digite duas idades: "
Leia id1,id2

Com isso o usuário digitaria as duas idades separadas por vírgula. Em Java como poderia fazer isso? (Já tentei com ',' e com o concatenador '+')
Isso me ajudaria pois eu economizaria linhas de código:

import java.util.Scanner;

public class Ex01 {
	/*
	 * Autor: Damião Rodrigues Oliveira - Março de 2008 - LISTA DE EXERCÍCIOS 04
	 * 
	 * Utilizei um operador de incremento. Qualquer dúvida sobre este tipo de
	 * operador consulte a página:
	 * http://muitomaisfacil.blogspot.com/2008/03/operadores-em-java.html
	 */
	public static void main(String[] args) {
		int id1, id2, id3, id4, id5, id6, id7, id8, id9, id10;
		int total = 0;

		Scanner entrada = new Scanner(System.in);

		System.out.print("Insira a 1ª idade: ");
		id1 = entrada.nextInt();

		System.out.print("Insira a 2ª idade: ");
		id2 = entrada.nextInt();

		System.out.print("Insira a 3ª idade: ");
		id3 = entrada.nextInt();

		System.out.print("Insira a 4ª idade: ");
		id4 = entrada.nextInt();

		System.out.print("Insira a 5ª idade: ");
		id5 = entrada.nextInt();

		System.out.print("Insira a 6ª idade: ");
		id6 = entrada.nextInt();

		System.out.print("Insira a 7ª idade: ");
		id7 = entrada.nextInt();

		System.out.print("Insira a 8ª idade: ");
		id8 = entrada.nextInt();

		System.out.print("Insira a 9ª idade: ");
		id9 = entrada.nextInt();

		System.out.print("Insira a 10ª idade: ");
		id10 = entrada.nextInt();

		if (id1 >= 18) {
			++total;
		}
		if (id2 >= 18) {
			++total;
		}
		if (id3 >= 18) {
			++total;
		}
		if (id4 >= 18) {
			++total;
		}
		if (id5 >= 18) {
			++total;
		}
		if (id6 >= 18) {
			++total;
		}
		if (id7 >= 18) {
			++total;
		}
		if (id8 >= 18) {
			++total;
		}
		if (id9 >= 18) {
			++total;
		}
		if (id10 >= 18) {
			++total;
		}

		System.out
				.println("O total de pessoas com idade igual ou superior a 18 anos é: "
						+ total);

	}
}

Desde já agradeço a colaboração e o apoio!
Até logo,

10 Respostas

rafaelzulin

Olá,
pelo que eu entendi, vc quer que o usuário digite as suas 10 idades em uma única linha usando um separador como a “,”. O que vc tem que fazer é ler essa string que vai ser entrada pelo usuário e depois trata-la. Eu sugiro que vc use a classe StringBuffer. com ela vc poderá tratar essa string facilmente. Ela possui um monte de métodos práticos e bem intuitivos. É só da uma lida na descrição de cada método (se estiver usando netbeans ou outro ide que as mostra :), senão procura na internet ).

t+

W

po cara o java aqui no trampo é 1.4 tem nem como eu testar esse codigo. =(
mas eu jurava que o Scanner funcionava do jeito que vc diz ter tentado tipo:

String input = "19 23 45 5 10;
     Scanner sc = new Scanner(input);

      while (sc.hasNextInt()) {
          int idade = sc.nextInt();

//faz os ifs aqui 
      }
//imprime resultado aqui

bastando apenas existir um caractere entre os inteiros, ja serviria como delimitador natural para o metodo nextInt(), virgula ,espaço ou qualquer coisa,
mas tenta ae por um espaço entre as duas ou mais idades como no meu exemplo, pena eu não poder testar aqui.

rodrigosan171

Ok. Pessoal.
Muito obrigado pelas dicas.
Abçs,

:smiley:

nicoweda

É simples, recebe as idades que o cara digitou separadas por , com o Scanner mesmo.

Depois pega essa String que deve vir algo como “10,18,23,24,32,43,19,15,23,13” e da um spli usando como regex a virgula.

String s = "10,18,23,24,32,43,19,15,23,13";
String[] idades = s.split(",");

for (String idadeString : idades) {
int idade = Integer.parseInt(idadeString);

int cont =0;
if(idade >= 18){
	cont++;
}

Abraços

haroldojribeiro

Como sugerido acima, você pode fazer isso com a classe Scanner (se é que entendi o que vc quer fazer rs);

Escrevi um código bem simples aqui, que vc tbm consegue ler e mostrar idades veja:

public static void main(String[] args) {
		String	idade1 = JOptionPane.showInputDialog("digite uma idade");
		String	idade2 = JOptionPane.showInputDialog("digite a outra idade");
		JOptionPane.showMessageDialog(null, "Primeira idade é : "+idade1);
		JOptionPane.showMessageDialog(null, "Segunda idade é: " +idade2);
		
	}

É claro que vc pode colocar isso dentro de um for, while, etc… ai vai de como exatamente você precisa se sua aplicação seja, qualquer coisa posta ai.
Espero ter ajudado
abraço!

rodrigosan171

nicoweda:
É simples, recebe as idades que o cara digitou separadas por , com o Scanner mesmo.

Depois pega essa String que deve vir algo como “10,18,23,24,32,43,19,15,23,13” e da um spli usando como regex a virgula.

String s = "10,18,23,24,32,43,19,15,23,13";
String[] idades = s.split(",");

for (String idadeString : idades) {
int idade = Integer.parseInt(idadeString);

int cont =0;
if(idade >= 18){
	cont++;
}

Abraços

Poxa nicoweda é isso mesmo vou testar amanhã q agora tenho q ir para o serviço…
Obrigado.

rodrigosan171

haroldojribeiro:
Como sugerido acima, você pode fazer isso com a classe Scanner (se é que entendi o que vc quer fazer rs);

Escrevi um código bem simples aqui, que vc tbm consegue ler e mostrar idades veja:

public static void main(String[] args) {
		String	idade1 = JOptionPane.showInputDialog("digite uma idade");
		String	idade2 = JOptionPane.showInputDialog("digite a outra idade");
		JOptionPane.showMessageDialog(null, "Primeira idade é : "+idade1);
		JOptionPane.showMessageDialog(null, "Segunda idade é: " +idade2);
		
	}

É claro que vc pode colocar isso dentro de um for, while, etc… ai vai de como exatamente você precisa se sua aplicação seja, qualquer coisa posta ai.
Espero ter ajudado
abraço!

Amigo haroldojribeiro valew pela dica do JOptionPane… esse recurso eu já sabia utilizar… mas usando o JOptionPane e teria que fazer da mesma forma que postei… ou seja criar várias linhas para pegar cada idade…

Ja com a dica do nicoweda eu posso pegar estas idades tudo numa linha só separadas por vírgula, isso agiliza o processo… =D
Muito obrigado pela dica!

pissurno

split é o que há… rsrsrsrs :smiley:

rodrigosan171

Colegas,

Muito obrigado pelas dicas aprendi usar coisas nova já! hehehe

Bom para solucionar aquele primeiro post utilizei uma coisa bem simples... estrutura condicional... e os meus problemas acabaram-se heehehe

Logo abaixo segue o código:

import java.util.Scanner;

public class Ex01 {
	/*
	 * Autor: Damião Rodrigues Oliveira - Março de 2008 - LISTA DE EXERCÍCIOS 04
	 * 
	 * Utilizei um operador de incremento. Qualquer dúvida sobre este tipo de
	 * operador consulte a página:
	 * http://muitomaisfacil.blogspot.com/2008/03/operadores-em-java.html
	 */
	public static void main(String[] args) {
		int id, total = 0, cont;

		Scanner entrada = new Scanner(System.in);

		for (cont = 1; cont < 11; cont++) {

			System.out.print("Insira a "+cont+"ª idade: ");
			id = entrada.nextInt();
			if (id >= 18) {
				++total;
			}
		}

			System.out
					.println("O total de pessoas com idade igual ou superior a 18 anos é: "
							+ total);

		
	}
}
Abraços,

E mais uma vez obrigado pela atenção dispendida.

Mr_Smith

Pessoal !! Boa noite é sobre algoritmo Kruskal, é que estou fazendo um trabalho de um mapa de uma região e precisaria saber, como posso andar por todos as cidades(vértices), sem fechar ciclo, ai preciso pegar as menores arestas.
Valew!

Criado 27 de março de 2008
Ultima resposta 28 de mar. de 2008
Respostas 10
Participantes 7