Em java não se usa “==” para se comparar Strings.
Use:
sn.equalsIgnoreCase("sim"); //Ignora a diferença entra letras maiúsculas e minúsculas
/* ou */
sn.equals("sim"); //Diferencia letras maiúsculas e minúsculas
Flw
Em java não se usa “==” para se comparar Strings.
Use:
sn.equalsIgnoreCase("sim"); //Ignora a diferença entra letras maiúsculas e minúsculas
/* ou */
sn.equals("sim"); //Diferencia letras maiúsculas e minúsculas
Flw
pq ele esta dizendo que minha arraySize = 0 mesmo quando eu ja armazenei diversos objetos dentro dela?
import java.util.ArrayList;
import javax.swing.*;
import java.util.Scanner;
class Pessoa{
private String name;
private int idade;
private String cidade;
public Pessoa(String name, int idade, String cidade) {
this.name = name;
this.idade = idade;
this.cidade = cidade;
}
//METODOS GETTERS
public String getName() {
return this.name;
}
public int getAge() {
return this.idade;
}
public String getCity() {
return this.cidade;
}
}
public class Info {
public static void main(String args[]) {
int n = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar informacoes de quantas pessoas? "));
int x;
String sn = new String("SIM");
ArrayList<Pessoa> listaInfo = new ArrayList<Pessoa>();
do {
for (x=0; x<n; x++) {
String name = JOptionPane.showInputDialog("Digite o nome da "+(x+1)+"ªpessoa: ");
int idade = Integer.parseInt(JOptionPane.showInputDialog("Digite a idade: "));
String cidade = JOptionPane.showInputDialog("Digite a cidade: ");
Pessoa p = new Pessoa(name, idade, cidade);
}
sn = JOptionPane.showInputDialog("Deseja ADICIONAR informações de mais pessoas?");
sn.toUpperCase();
if (sn.equalsIgnoreCase("SIM")) {
n = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar informacoes de quantas pessoas? "));
}
} while (sn.equalsIgnoreCase("SIM"));
JOptionPane.showMessageDialog(null,
"Informações armazenadas com sucesso!",
"Parabéns",
JOptionPane.PLAIN_MESSAGE);
sn = JOptionPane.showInputDialog("Deseja OBTER informações de alguma pessoa?");
int arraySize=0;
int y=0;
if (sn.equalsIgnoreCase("SIM")) {
arraySize = listaInfo.size();
JOptionPane.showMessageDialog(null,
"Digite na próxima tela o numero referente a pessoa da qual deseja obter informações!",
"ATENÇÃO",
JOptionPane.PLAIN_MESSAGE);
System.out.println(arraySize); // ELE ESTA IMPRIMINDO SEMPRE 0, COMO SE MINHA ARRAYLIST TIVESSE 0 OBJETOS
n = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero da pessoa da qual deseja obter informações\n\n"));
} else {
JOptionPane.showMessageDialog(null,
"Programa executado com sucesso!",
"FIM",
JOptionPane.PLAIN_MESSAGE);
}
}
}
nossa como eu sou burro
esqueci de adicionar as paradas na ArrayList com o listInfo.add()
puta que pariu
Então, no C, quando vc compara dois char* com ==, vc tá comparando endereços de ponteiro, certo? Se vc quiser comparar as duas, precisa do strcmp.
No Java é a mesma coisa. Se vc comparar com ==, estará testando se duas Strings são o mesmo objeto, ou seja, se o endereço de memória das duas é idêntico.
O equals é o cara que faz a comparação de igualdade.
Outra coisa, o método compare retorna:
> 0 se a String sendo comparada for maior que a recebida por parâmetro
== 0 se as duas Strings forem iguais
< 0 Se a String sendo comparada for menor que a recebida por parâmetro.
Sempre leia o javadoc antes de usar um método. Programar por tentativa e erro dificilmente dá certo.
finalizei o programa! weee
import java.util.ArrayList;
import javax.swing.*;
import java.util.Scanner;
class Pessoa{
private String name;
private int idade;
private String cidade;
public Pessoa(String name, int idade, String cidade) {
this.name = name;
this.idade = idade;
this.cidade = cidade;
}
//METODOS GETTERS
public String getName() {
return this.name;
}
public int getAge() {
return this.idade;
}
public String getCity() {
return this.cidade;
}
}
public class Info {
public static void main(String args[]) {
int n = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar informacoes de quantas pessoas? "));
int x;
String sn = new String("SIM");
ArrayList<Pessoa> listaInfo = new ArrayList<Pessoa>();
do {
for (x=0; x<n; x++) {
String name = JOptionPane.showInputDialog("Digite o nome da "+(x+1)+"ªpessoa: ");
int idade = Integer.parseInt(JOptionPane.showInputDialog("Digite a idade: "));
String cidade = JOptionPane.showInputDialog("Digite a cidade: ");
Pessoa p = new Pessoa(name, idade, cidade);
listaInfo.add(p);
}
sn = JOptionPane.showInputDialog("Deseja ADICIONAR informações de mais pessoas?");
sn.toUpperCase();
if (sn.equalsIgnoreCase("SIM")) {
n = Integer.parseInt(JOptionPane.showInputDialog("Deseja adicionar informacoes de quantas pessoas? "));
}
} while (sn.equalsIgnoreCase("SIM"));
JOptionPane.showMessageDialog(null,
"Informações armazenadas com sucesso!",
"Parabéns",
JOptionPane.PLAIN_MESSAGE);
sn = JOptionPane.showInputDialog("Deseja OBTER informações de alguma pessoa?");
int arraysize=0;
int y=0;
if (sn.equalsIgnoreCase("SIM")) {
arraysize = listaInfo.size();
int z=1;
for (Pessoa p : listaInfo) {
JOptionPane.showMessageDialog(null,
z+" - Nome: "+((Pessoa)listaInfo.get(y)).getName()+", Idade: "+((Pessoa)listaInfo.get(y)).getAge()+", Cidade: "+((Pessoa)listaInfo.get(y)).getCity(),
"MEMORIZE",
JOptionPane.PLAIN_MESSAGE);
z++;
y++;
}
}
JOptionPane.showMessageDialog(null,
"Programa executado com sucesso!",
"FIM",
JOptionPane.PLAIN_MESSAGE);
}
}