Pessoal, tenho uma ideia na minha cabeça mas nesse caso não sei como desenvolve-la
Tenho um array de String com os mêses que vai de 0 a 11.
tenho uma matriz[i][j]
e tenho uma classe com parâmetros
String[] meses = {"janeiro", "feveiro", "março", "abril ", "maio", "junho",
"julho", "agosto", "setembro", "outubro", "novembro", "dezembro"};
valores = new Receita(100, 100, new MesAno("janeiro", 2019));
receita.tabela[0][0] == valores;
`
Nessa linha um dos parametros é: new MesAno que informa um mês e um ano.
o que desejo é comparar o janeiro com meu array de meses e retornar posição 0
para colocar no meu array bi-dimensional
valores = new Receita(100, 100, new MesAno(“Janeiro”, 2019));
`
Vc poderia fazer assim:
int index = java.util.Arrays.asList(meses).indexOf("janeiro");
Está é uma forma de pegar o index, mas preciso comparar pois o que desejo é coisa do tipo:
valores = new Receita(100, 100, new MesAno(“julho”, 2019)); //pegando o julho
julho = meses[ 0 ] ? (não, pois posição 0 ocupa janeiro.
julho = meses [ 5 ] ? (não, pois posição 5 ocupa junho.
julho = meses [ 6 ] ? (sim, pois julho = julho)
[ i ] = 6 agora então
receita.tabela[0][6] == valores; // agora julho ocupa a posição 6 da minha matriz
OBS: um dos problemas que tô passando é que não consigo comparar direto com o .getMesano que é o 3 parâmetro de Receita pois ele também inclui um inteiro nesse caso o ano
Vc usaria assim:
String[] meses = {"janeiro", "feveiro", "março", "abril ", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"};
int index = java.util.Arrays.asList(meses).indexOf("janeiro");
String mes = meses[index];
Receita valores = new Receita(100, 100, new MesAno(mes, 2019));
receita.tabela[0][index] == valores;
Se não for isso, vc teria que explicar ainda melhor.
kkk não é isso, a ideia é que o usuario informe esse parametro que voçê considerou mes
Receita valores = new Receita(100, 100, new MesAno(mes, 2019));
só coloquei um valor fixo a nível de teste e de velocidade
for (int i=0; i<meses.length; i++){
if(meses[i].equals(valores.getMesano())) {
System.out.println("TRUE");
} else System.out.println("FALSE");
}
achei que essa poderia ser uma forma.
a impressão True or False é para testar se funciona, mas a condição sempre é false pois o equals é de incompatible types, pois o .getMesano é um atributo de Receita do tipo MesAno que possui dois atributos: this.mes e this.ano
Então pode ser que a classe MesAno precise de um método getMes() que retorna somente a String do mês.
Aí vc faria algo assim:
for (int i = 0; i < meses.length; i++) {
if(meses[i].equals(valores.getMesano().getMes())) {
System.out.println("TRUE");
} else System.out.println("FALSE");
}
Funcionou!!
essa parte do código que eu tava com dificuldade de implementar ficou assim:
valores = new Receita(100, 100, new MesAno("Janeiro",2019));
if (!(valores.getMesano().getAno() < 2020 - receita.getQtdAnos())) {
for (int i=0; i<meses.length; i++){
if(meses[i].equals(valores.getMesano().getMes())) {
index =i;
}
}
if (receita.tabela[2020 - valores.getMesano().getAno()][index] == null) {
receita.tabela[2020 - valores.getMesano().getAno()][index] = valores;
} else {
receita.tabela[2020 - valores.getMesano().getAno()][index].incrementar(valores);
}
}
1 curtida