tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
572
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Hardi82 Hardi82 ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Beiträge
    59
    Hallo. Ich habe folgende Sache:

    ich arbeite zur Zeit mit POI-HSSF und lese Exceldateien aus. Nun möchte ich die verschiedenen Formel-Zellen darauf untersuchen, ob diese "geklont" sind. Das bedeutet, ob die Formel in diesen sich nur durch unterschiedliche Zellenverweise unterscheiden. Als Bsp. Zelle 1 "=SUM(A1:X1)" und Zelle 2 "=SUM(A2:X2)" und so weiter. Da es mittels POI nur möglich ist, zeilenweise einzulesen habe ich mich dazu entschieden, einen TreeMap einzusetzen und als Key die Zellenbezeichnung zu nehmen und als Value die Formel einzutragen. Durch die automatische Sortierung erhalte ich dann in etwa folgendes:

    A10 = "=SUM(A1:X1)"
    A11 = "=SUM(A2:X2)"
    ...

    und so weiter. Soweit bin ich damit auch zufrieden, ABER ich habe Problem bei folgender Konstellation:

    A10 = "=SUM(A1:X1)"
    A100 = "=A10"
    A11 = "=SUM(A2:X2)"

    Wie ihr sicher seht, sortiert die Map nicht genau nach Zahlen, sondern scheinbar nach Zeichenstellen oder so. Das wäre allerdings für meine folgende Untersuchung auf Geklontheit nicht so gut. Deshlab meine Frage: gibt es eine Möglichkeit, die Map "genauer" sortieren zu lassen, so dass die Reihenfolge "A10, A11, A100" herauskommt oder gibt es da eventuell eine andere Map, die dafür geeigneter ist? Danke schonmal für nützliche Tipps und Hinweise.

    Gruß Hardie
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Anmerkung: Map bezieht sich auf TreeMap.

    Post war ursprünglich in dem http://www.tutorials.de/forum/java/3...ortierung.html Thread zu finden. Habe diesen in einen eigenen Thread verschoben.
     

  3. #3
    Avatar von joschi70
    joschi70 joschi70 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    143
    Hi Hardie,

    die TreeMap wird in Deinem Fall alphanumerisch sortiert.
    Wenn Du das ändern willst, kannst Du bei der TreeMap im Konstruktor eine Comparator mitgeben.

    Gruß
    joschi
     

  4. #4
    Hardi82 Hardi82 ist offline Mitglied Silber
    Registriert seit
    Mar 2005
    Beiträge
    59
    Aha, ich muss demnach einen eigenen Comparetor erzeugen und diesen dann mitliefern? Hast du eine Idee, wie der aussehen könnte, damit ich das geforderte Ergebnis erhalte?

    Gruß
    Hardie
     

  5. #5
    Avatar von joschi70
    joschi70 joschi70 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    143
    Hi Hardie,

    Du könntest es mal hiermit probieren.
    Ist aber nicht gut getestet.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    class TestComparator implements Comparator<String>{
            public int compare(String s1, String s2){
            
                String alpha1 = s1.substring(0, getAlphaEndIndex(s1));
                int numeric1 = Integer.parseInt(s1.substring(alpha1.length()));
                
                String alpha2 = s1.substring(0, getAlphaEndIndex(s2));
                int numeric2 = Integer.parseInt(s2.substring(alpha2.length()));
                
                if(alpha1.compareTo(alpha2) != 0) {
                    return alpha1.compareTo(alpha2);
                }
                else {
                    return numeric1 - numeric2;
                }
     
     
            }
            
            private int getAlphaEndIndex(String s) {
                int index = 0;
                for(byte c : s.getBytes()) {
                    if (c >= 'A')
                        index++;
                    else
                      break;
                }
                return index;
            }
     
        }

    Gruß
    joschi
     

Ähnliche Themen

  1. Excel - Doppelte Einträge finden
    Von ziriander im Forum Office-Anwendungen
    Antworten: 32
    Letzter Beitrag: 23.03.12, 10:05
  2. bestimmte Dateien auf Server finden
    Von Kalito im Forum PHP
    Antworten: 1
    Letzter Beitrag: 22.10.10, 14:01
  3. Antworten: 4
    Letzter Beitrag: 28.11.07, 15:17
  4. Excel - Nur Zahlen finden
    Von ZidaneIX im Forum Office-Anwendungen
    Antworten: 3
    Letzter Beitrag: 06.06.06, 08:30
  5. Gelöschte dateien finden und wiederherstellen mit VB!
    Von alfa im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 16.04.05, 13:41