Pessoal, sou iniciante em java e tenho uma dúvida besta
Como faço para verificar se já existe um numero no vetor[20]
for(i=0;i<20;i++){
num[i] = Integer.parseInt(JOptionPane.showInputDialog(“Digite um número”));
}
Pessoal, sou iniciante em java e tenho uma dúvida besta
Como faço para verificar se já existe um numero no vetor[20]
for(i=0;i<20;i++){
num[i] = Integer.parseInt(JOptionPane.showInputDialog(“Digite um número”));
}
Eu acho que você já fez o mais difícil, para ver se é um número, podes usar um laço try/catch usando os métodos da classe Integer ou Double. Dê uma olhadinha na documentação e caso tenha alguma dificuldade, te ajudo nisso.
Até!
Mas a pergunta era se "existe o número" não se "é um número", ou eu que viajei?! :shock:
Bom, para verificar se é um número vc deve fazer como sugeriu o maquiavel.
Seguindo sua idéia, para verificar se o número está no vetor, pode ser assim (usando a sua idéia inicial):
int numero = Integer.parseInt(JOptionPane.showInputDialog("Digite um número"));
for(int i = 0; i < 5; i++){
if (num[i] == numero)
System.out.println("é igual");
}
Perguntou se existe um número(tipo), não se existe um número específico (objeto).
Ai como a língua lusitana nos falta!
Até!
Na verdade, preciso montar uma condição simples:
Obs: estou fazendo um trabalho da faculdade que envolve manipulação de arquivo, métodos e objetos, conforme tenho uma dúvida solicito ajuda.
Estou grato pelas dicas e orientações.
[quote=Sergio Prado]Na verdade, preciso montar uma condição simples:
Obs: estou fazendo um trabalho da faculdade que envolve manipulação de arquivo, métodos e objetos, conforme tenho uma dúvida solicito ajuda.
Estou grato pelas dicas e orientações.
[/quote]
vector brasil[20];
produto x= new Produto();
*getNumero_produto()-> este metodo tem de retornar o numero do produto ou seja tens de ter um atributo para o numero do produto
Creio que eu tenha entendido como a Renata, e acho que a maneira mais fácil de você entender, já que está começando é pelo código dela, se o número (código), for igual a algum cadastrado, exibe uma mensagem adequada, lembrando de percorrer o vetor do começo ao fim (0 a 19).
ai e o k foi que eu postei?
só entropia :oops:
Ops! Eu usei um vetor com 5 elementos pra testar e acabei colocando o código pra ele desse jeito… foi mal… :oops:
Ops! Eu usei um vetor com 5 elementos pra testar e acabei colocando o código pra ele desse jeito… foi mal… :oops: [/quote]
ah manda mal pra mim tb… :oops: :oops: :oops: :oops:
RenataFA, Alkamavo e Thiago Domingues obrigado pelas dicas e idéias de vocês, aproveitando, tenho um exemplo claro do que preciso.
1) Só posso vender uma passagem se e somente a mesma não estiver ocupada
[code]public class passageiro{
//Atributos
private String nome, rg;
private int poltrona;
//Metodos de acesso getXxx
public String getNome() {
return nome;
}
public String getRg() {
return rg;
}
public int getPoltrona() {
return poltrona;
}
//Metodos de acesso setXxx
public void setNome(String n) {
nome = n;
}
public void setRg(String r) {
rg = r;
}
public void setPoltrona(int p) {
poltrona = p;
}
}[/code]
2) No método main criei três array
3) Aqui o usuário digita um número da poltrona, se a poltrona já estiver ocupada, o sistema envia mensagem “Poltrona ocupada”, e ainda tenho que criar um método para verificar se a poltrona é do corredor ou janela.
[code]import javax.swing.*;
public class usaPassageiro {
public static void main(String args[]){
int i;
passageiro p = new passageiro();
String aux_nome[] = new String[20];
String aux_rg[] = new String[20];
int aux_poltrona[] = new int[20];
for(i=0;i<20;i++)
{
aux_nome[i] = JOptionPane.showInputDialog("Digite o nome");
aux_rg[i] = JOptionPane.showInputDialog("Digite o rg");
aux_poltrona[i] = Integer.parseInt(
JOptionPane.showInputDialog("Digite a poltrona"));
p.setNome(aux_nome[i]);
p.setRg(aux_rg[i]);
p.setPoltrona(aux_poltrona[i]);
}
for(i=0;i<3;i++)
{
System.out.println("Nome: " + p.getNome());
System.out.println("Rg: " + p.getRg());
System.out.println("Nome: " + p.getPoltrona());
}
}
}[/code]
4) e depois armazenar os atributos num arquivo.txt.
Tenho material do Guj e apostila estou vendo como vou fazer isso, porém sei que vocês conhecem, temo como criar um método para isso.
Acredito que ficou mais claro agora.
Att.
Sérgio
Ok, vamos tentar fazer vc "andar" mais um pouco no seu projetinho.
Uma dica: Use sempre nome de classes com a primeira letra em maiúscula. É um padrão de nomenclatura seguido, fica melhor.
Bem, agora vamos as suas classes:
[code]import javax.swing.JOptionPane;
public class usaPassageiro{
// array para armazenar seus passageiros
static passageiro[] aPassageiros = new passageiro[20];
public static void main(String args[]){
// loop para pegar todos os passageiros
for(int i=0;i<20;i++){
String nome = JOptionPane.showInputDialog("Digite o nome");
String rg = JOptionPane.showInputDialog("Digite o rg");
int poltrona = 0; // inicio como poltrona = 0
while (poltrona == 0 || !poltronaLivre(poltrona)) // fico pedindo a poltrona até que ela seja diferente de 0 e desocupada
poltrona = Integer.parseInt(JOptionPane.showInputDialog("Digite a poltrona"));
// crio o objeto passageiro (se preferir pode mudar o construtor pra já passar os parâmetros)
passageiro p = new passageiro();
p.setNome(nome);
p.setRg(rg);
p.setPoltrona(poltrona);
// adiciono o passageiro na minha lista de passageiros
aPassageiros[i] = p;
}
// loop para imprimir todos os passageiros
for(int i=0;i<aPassageiros.length;i++){
System.out.println("Nome: " + aPassageiros[i].getNome());
System.out.println("Rg: " + aPassageiros[i].getRg());
System.out.println("Nome: " + aPassageiros[i].getPoltrona());
}
}
/**
* Verifico se a poltrona de número p passada está livre, ou seja, se ela não pertence a nenhum outro passageiro
* ainda.
* @param p
* @return
*/
private static boolean poltronaLivre(int p){
for(int i = 0; i >< aPassageiros.length; i++){
if (p == aPassageiros[i].getPoltrona()){
System.out.println("Poltrona ocupada!!!");
return false;
}
}
return true;
}
}[/code]
Olha, na sinceridade, não tive tempo de testar, mas veja que deve ser algo por ai.
É possivel converter um array em uma lista e, assim, verificar se contem algum elemento:
[code]import java.util.Arrays;
public class A{
public static void main (String… x){
Integer y[] = new Integer[]{1,2,3};
System.out.println("contem 3? " + Arrays.asList(y).contains(3));
System.out.println("contem 5? " + Arrays.asList(y).contains(5));
}
}[/code]
$ java A
contem 3? true
contem 5? false
[quote=everson_z][quote= .RenataFA]
/**
* Verifico se a poltrona de número p passada está livre, ou seja, se ela não pertence a nenhum outro passageiro
* ainda.
* @param p
* @return
*/
private static boolean poltronaLivre(int p){
...
return true;
}
}[/code][/code]
[/quote]
Isso esta certo?
@param p
:?: [/quote]
Vc se refere ao @param p ?
Qual o problema com ele? Pq não estaria certo?!
Não everson!
Eu criei isso ai correndo só pra criar um exemplo pro nosso amigo com problema. Eu NUNCA criaria uma variável com o nome de “p”. Eu não fiz comentários adequados, eu apenas digitei /**<enter> (para escrever o comentário) e o Eclipse colocou o resto sozinho.
Eu não estava ensinando ngn a fazer comentários adequados e não programei esse trechinho de código pensando em como ficaria a documentação. Eu nem salvei isso ai, só fiz na IDE pra ficar mais alinhado e evitar erro de sintaxe!
O eclipse tem a mani de criar isso para incentivar os newbissimos a criar Documentação…basta criares uma nova class e akilo aprece sempre…
Pessoal, estou começando minha caminhada em orientação a objetos, para ser sincero estou utilizando o JCreator para desenvolver os trabalhos e pretendo me aprofundar cadas vez mais em Java.
Exception in thread “main” java.lang.NullPointerException
at usaPassageiro.poltronaLivre(usaPassageiro.java:47)
at usaPassageiro.main(usaPassageiro.java:16)
Não sei se é nessa linha
// fico pedindo a poltrona até que ela seja diferente de 0 e desocupada
while (poltrona == 0 || !poltronaLivre(poltrona))
Também estou desenvolvendo uma classe para inserir no arquivo, depois vou postar aqui para saber opnião de vocês que conhencem e tem vivência em programação.
Grato
Sérgio
Esqueci de uma consistência. Tente agora:
[code]import javax.swing.JOptionPane;
public class UsaPassageiro{
static Passageiro[] aPassageiros = new Passageiro[20];
public static void main(String args[]){
// loop para pegar todos os passageiros
for(int i=0;i<20;i++){
String nome = JOptionPane.showInputDialog("Digite o nome");
String rg = JOptionPane.showInputDialog("Digite o rg");
int poltrona = 0; // inicio como poltrona = 0
while (poltrona == 0 || !poltronaLivre(poltrona)) // fico pedindo a poltrona até que ela seja diferente de 0 e desocupada
poltrona = Integer.parseInt(JOptionPane.showInputDialog("Digite a poltrona"));
// crio o objeto passageiro (se preferir pode mudar o construtor pra já passar os parâmetros)
Passageiro p = new Passageiro(nome, rg, poltrona);
// adiciono o passageiro na minha lista de passageiros
aPassageiros[i] = p;
}
// loop para imprimir todos os passageiros
for(int i=0;i<aPassageiros.length;i++){
System.out.println("Nome: " + aPassageiros[i].getNome());
System.out.println("Rg: " + aPassageiros[i].getRg());
System.out.println("Nome: " + aPassageiros[i].getPoltrona());
}
}
/**
* Verifico se a poltrona de número p passada está livre, ou seja, se ela não pertence a nenhum outro passageiro
* ainda.
* @param p
* @return
*/
private static boolean poltronaLivre(int p){
for(int i = 0; i >< aPassageiros.length; i++){
// como já configurei que o array terá 20 posições, ele percorre até 20, só quem nem sempre tem um passageiro na posição
// do array, a posição pode estar null, por isso tava dando aquele erro.
if ((aPassageiros[i] != null) && (p == aPassageiros[i].getPoltrona())){
System.out.println("Poltrona ocupada!!!");
return false;
}
}
return true;
}
public static class Passageiro{
// Atributos
private String nome, rg;
private int poltrona;
public Passageiro(){}
public Passageiro(String nome, String rg, int poltrona){
this.nome = nome;
this.rg = rg;
this.poltrona = poltrona;
}
public String getNome() {
return nome;
}
public String getRg() {
return rg;
}
public int getPoltrona() {
return poltrona;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setRg(String rg) {
this.rg = rg;
}
public void setPoltrona(int poltrona) {
this.poltrona = poltrona;
}
}
}
[/code]
RenataFA, obrigado pela ajuda, só daqui um tempo vou ser seu concorrente hein!!! brincadeira
É que cada vez estou gostando mais de Java.
Criei esse método para inserir em um arquivo, seria mais ou menos isso mesmo?
[code]public static void insereNoArquivo(String nome, String rg, int poltrona){
File f= new File(“arq.txt”);
try{
FileWriter fw = new FileWrite(f);
BufferedWriter escrita = new BufferedWriter(fw);
escrita.write(nome);
escrita.write(rg);
escrita.write(poltrona);
escrita.newLine();
escrita.close();
}
catch(IOException ex){
System.out.println("\n Prolemas com o arquivo");
}
}[/code]
OLha, aparentemente é isso msm. Vc testou? Está gravando?