Pessoal! Help!
Estou desenvolvendo uma aplicação desktop (que deveria ser fácil kkkk) que trabalha com 3 matrizes globais, 2 dessas matrizes são carregadas a partir de arquivos texto e xml para formar uma 3° matriz que irei utilizar num Jtable. O que acontece é que quando faço a comparação de Strings armazenadas e elas sendo iguais, nunca entra na condição If. Já tentei com ==, .equals, já criei variaveis para receber os parâmetros e nada. Já depurei todo o códido e as variáveis recebem as Strings iguais mas nunca entram no IF para concatenar e salvar na 3° matriz. Ja pesquisei aqui no forum e até achei assuntos relacionados, mas aplicando no código não funciona. Sou novato no assunto e não trabalho com programação, então tenham paciência comigo kkkk.
Criei uma classe Item conforme codigo abaixo + construtor + getters e setrs
public class Item {
private String codigo;
private String workCenter;
private String controlKey;
private String orderQtt;
private String maxPackage;
public Item() {
}
A matriz XML é formada por 2 colunas codigo e qtd
Cod | qtd
xx12312 | 23
xx32112 | 200
xx32321 | 100
A matriz Base é formada por 4 colunas (a base é ~20k linhas fixas)
Cod | WorkCenter | ControlKey | MaxPackage
xx32112 | PR2907OM | AF33 | 22
…
A 3° é a matrizTable que irá concatenar os dados da matriz base a partir das linhas da matrizXML comparando os códigos. Deveria ficar nesse formato:
Cod | WorkCenter | ControlKey | Qtd | MaxPackage
xx32112 | PR2907OM | AF33 | 200 | 22
O código que comparo as Strings de item.codigo estão em uma classe MatrizTable
o problema está nos ifs no metodo createMatrizTable
public class MatrizTable {
public static void add(String codigo, String workCenter, String controlKey, String orderQtt, String qtdMaxPackage) {
//array de 4 posições salvo dentro do array global - array da base de dados txt
ArrayList<String> l = new ArrayList<>();
l.add(codigo);
l.add(workCenter);
l.add(controlKey);
l.add(orderQtt);
l.add(qtdMaxPackage);
Global.matrizTable.add(l);
//System.out.println(Global.matrizBase.get(3).get(0));
}
public static void delete(String item) {
for (int i = 0; i < Global.matrizTable.size(); i++) {
if (Global.matrizTable.get(i).get(0).equals(item)) {
Global.matrizTable.remove(i);
System.out.println("Item a ser removido foi encontrado " + Global.matrizTable.get(i).get(1) + "= item: " + item);
}
//System.out.println();
}
}
public static void imprime() {
//System.out.println(Global.matrizBase.get(100));
System.out.println("\n\nMatrizTable");
//print the 2D ArrayList or nested ArrayList
for (int i = 0; i < Global.matrizTable.size(); i++) {
for (int j = 0; j < Global.matrizTable.get(i).size(); j++) {
System.out.print(Global.matrizTable.get(i).get(j) + "|");
}
System.out.println();
}
//System.out.print("\n\n" + Global.matrizTable.get(0).get(0) + "|" + Global.matrizTable.get(0).get(1) + "|" + Global.matrizTable.get(0).get(2) + "|" + Global.matrizTable.get(0).get(3) + "|" + Global.matrizTable.get(0).get(4));
}
public static void clean() {
for (int i = 0; i < Global.matrizTable.size(); i++) {
Global.matrizTable.remove(i);
}
System.out.println();
}
public static void createMatrizTable() {//concat matrizXML with matrizBase to complite the list
Item item = new Item();
String var;
String var2;
//read line by line, matrizXML is the reference to create matrizTable because we need to report it
for (String[] matrizXML : Global.matrizXML) {
if (matrizXML[0] != null) {
//System.out.println(matrizXML[0] + "|" + matrizXML[1]);
item.setCodigo(matrizXML[0]);
item.setOrderQtt(matrizXML[1]);
MatrizTable.add(item.getCodigo(), "", "", item.getOrderQtt(), "");
//System.out.println("---> " + item.getCodigo() + " " + item.getOrderQtt());
//search in matrizBase item that was found != null position and add values to class item to complete the matrizTable
for (int i = 0; i < Global.matrizBase.size(); i++) {
var = Global.matrizBase.get(i).get(0);
var2 = item.getCodigo();
//---------Deveria entrar aqui em um dos ifs mas pula todos --------------------
if (Global.matrizBase.get(i).get(0).equals(item.getCodigo())) {
System.out.println("deu certo com: if (Global.matrizBase.get(i).get(0).equals(item.getCodigo()))");
}
if (var == var2) {
System.out.println("deu certo com: if (var==var2)");
}
if (var.equals(var2)) {
System.out.println("deu certo com: if(var.equals(var2))");
}
if (var.equalsIgnoreCase(var2)) {
System.out.println("deu certo com: if (var.equalsIgnoreCase(var2))");
}
if (new String(var).equals(new String(var2))) {
System.out.println("deu certo com: if (new String(var).equals(new String(var2)))");
}
if (var.hashCode() == var2.hashCode()) {
System.out.println("deu certo com: if (var.hashCode()==var2.hashCode())");
}
if (var.matches(var2)) {
System.out.println("deu certo com: if (var.matches(var2))");
}
if (var.startsWith(var2)) {
System.out.println("deu certo com: if (var.startsWith(var2))");
}
if (var.toUpperCase().equals(var2.toUpperCase())) {
System.out.println("deu certo com: if (var.toUpperCase().equals(var2.toUpperCase()))");
}
if (var == var2) {
System.out.println("deu certo com: if (var == var2)");
item.setWorkCenter(Global.matrizBase.get(i).get(1));
item.setControlKey(Global.matrizBase.get(i).get(2));
item.setMaxPackage(Global.matrizBase.get(i).get(3));
//System.out.println(item.getCodigo() + " " + item.getWorkCenter() + " " + item.getControlKey() + " " + item.getOrderQtt() + " " + item.getMaxPackage());
}
}
}
}
//MatrizTable.imprime();
}
}
