Zum Inhalt springen

white.apple

Mitglieder
  • Gesamte Inhalte

    23
  • Benutzer seit

  • Letzter Besuch

  1. Ok, ich hab's. Ich ermittel mir die maximale Stringlänge in einer Spalte (maxLength). Und dann... reicht einfach für jeden String oldKey String key = String.format("%-"+maxLength+"s", oldKey); Somit wird jeder String auf die Länge von maxLength gebracht. Der Minus davor heißt, dass die Leerzeichen hinten hinzugefügt werden (Ausrichtung zur linken Seite in der Tabelle).
  2. Ich dachte mit Tabs gehts einfacher. Wollte aber nicht jedes Mal die Anzahl der Tabs festlegen müssen. Was meinst du mit "entsprechend" Zwischenräume berechnen? Sowas wie eine feste Spaltenbreite anlegen, sprich: alle Strings mit Leerzeichen auf eine einheitliche Länge bringen?
  3. Hallo, ich möchte auf der Console eine Art Tabelle anzeigen. Mit "\t" wird zwar zum nächsten Tab gegangen aber wegen der unterschiedlichen Stringlängen ist es nicht immer dieselbe Stelle. Wie kann ich erzwingen, dass sich der Rest immer an das jeweils längste Wort in der "Spalte" anpasst? MfG, white.apple
  4. Hallo, ich suche im Netz vergeblich nach einem Beispiel für eine Möglichkeit, ein Kommandozeilenprogramm mit einer Art EventListeners zu versehen. Mein Programm ruft von der Kommandozeile verschiedene Aktionen auf, die dann ausgeführt werden (eine auf einmal). Teilweise sind die aber etwas komplex und dauern dementsprechend auch lange. Ich würde gerne dem Nutzer die Möglichkeit anbieten, eine solche Aktion bei der Ausführung anzuhalten. Da "hört" aber das Programm nicht auf die Kommandozeilen-"Events" Sieht ihr da vllt eine Lösungsmöglichkeit?
  5. white.apple

    Enums

    Hallo, ich habe mir ein Enum aufgebaut, ungefähr so: public enum Eingabe { USER ( new User() ), PASSWD ( new Password()); [I]//Konstruktor[/I] private AbstractEingabe clazz; private Eingabe(AbstractEingabe abstract) { this.clazz = abstract } } Die Klassen, die AbstractEingabe implementieren, verwende ich in einem a'la-Strategy-Muster, d.h. situationsabhängig setze ich den Kontext meines Programmes auf User / Password und es werden entsprechende Versionen meiner Methoden ausgeführt. Meine Frage ist wahrscheinlich lächerlich aber: wie kann ich sicherstellen, dass im Laufe des Programms nur eine einzige Instanz jeder der Klassen existiert? Ginge das so? public enum Eingabe{ USER(getUser()), PASSWORD(getPassword(); [I] //Konstruktor[/I] ... private static Password password = new Password(); private static AbstractParameter getPassword() { return password; } ...(User analog) Ich bin mir nicht sicher... und wäre für jede Hilfe dankbar :confused:
  6. Ich dachte, dass JLine (JLine - JLine) eine gute Lösung meiner Probleme wäre. Aber leider wenn ich das Beispiel PasswordReader (im Installationspackage enthalten) ausführen will, kommt eine Exception in thread "main" java.lang.NoClassDefFoundError: jline/ConsoleReader at PasswordReader.main(PasswordReader.java:18), obwohl ich jline im Java Build Path als Bibliothek angebunden und in classpath angegeben hab. Woran kann das liegen? :confused:
  7. Hallo, ich suche nach der Möglichkeit, in einer Kommandozeilenapplikation die von einem User gemachte Angabe zu vervollständigen (nachdem er die TAB-Taste gedrückt hat). Kennt vllt jemand von Euch ein Bsp., wo jemand sowas Ähnliches in Java implementiert hat? Gruß, white.apple
  8. Es sind nicht Integer, die am Ende rauskommen. Es war nur als Beispiel angegeben. In Wirklichkeit ist es ein firmeninternes Format um ein Dialogmenü auf der Konsole anzuzeigen(was ich benutzen muss). Es steht nichts weiter dahinter, weil die Werte der Klasse auch nur Strings sind also kompatibel wird's auf jeden Fall.
  9. Ich versuche es anders zu erklären. Ich bekomme: ein String[]. Ich muss - anhand seiner Einträge - unterschiedliche Aufteilung der darin enthaltenen Informationen in andere Datenstrukturen packen (hab ArrayList genommen). Ich brauch am Ende ein AndererTyp[] für jede der Listen. Und hier liegt mein Problem: ich mag ungerne denken, dass ich für jede dieser Listen die Umwandlung für jedes Element durchführen muss. Lässt sich das verallgemeinern?
  10. Hallo, ich habe ein (Verständnis-)Problem: in meinem Programm lese ich Daten aus einer Datenbank (String). Danach werden sie in einer ArrayList<String> gespeichert. Nachdem der (dynamische) Vorgang abgeschlossen ist, möchte ich die Daten als ein Array<andererTyp> haben. Wie kann ich das lösen? Mir fiel ein: (incoming: String) -- > ArrayList<String> --> AndererTyp[] Angenommen, anderer Typ wäre Integer, dann liefe es so: private Integer[] List2IntegerArray(ArrayList<String> temp) { Integer[] newArray = new Integer[temp.size()]; for( int i = 0; i < newArray.length; i++) { newArray[i] = Integer.valueOf(temp.get(i)); } return newArray; } Aber irgendwie mag ich die Lösung gar nicht :upps Zuerst dachte ich an ArrayList<String> --> String[] --> AndererTyp[], wobei mittels list.toArray(String[0]); erster Schritt gemacht würde. Aber es wäre auch nicht besser, stimmt's? Und da ich eine solche Umwandlung wahrscheinlich öfters benutzen muss, würde ich gerne Verbesserungsvorschläge von Euch hören. Gibt es eine Möglichkeit, EINE for-Schleife ganz wegzulassen? P.S. Bei solchen Konstrukten kann man nicht die erweiterte for-Schleife benutzen, oder? Im Voraus vielen Dank für Eure Geduld:D
  11. white.apple

    Datenstruktur

    Ich weiß doch nicht wirklich weiter Ich hab's etwas komplizierter gemacht(noch eine "Ebene" mehr) deswegen bezieh ich meine Frage lieber auf den letzten Lösungsvorschlag von bigredeyes. Wie könnte ich da die Schlüssel(db) für einen bestimmten (typ) bekommen wo die (typ)s jetzt in einem Vektor sind und somit nicht direkt ansprechbar? Ich möchte gerne für einen definierten (typ) alle (db) bekommen, die ihn in ihrer Liste enthalten. Und noch eine Frage: wenn der Schlüssel nicht einfacher Datentyp ist sondern einer, der aus 2 Komponenten besteht. Kann man dann die Schlüssel aussuchen, die z.B. als 2.tes Element "bah" stehen haben?
  12. white.apple

    Datenstruktur

    Vielen Dank! Wahrscheinlich verbinde ich deine Lösung mit meiner, da -wie sich herausstellte- noch ein weiterer Parameter mit abgespeichert werden soll (und dieser eignet sich als Key besser als Typ). Danke nochmals !!
  13. white.apple

    Datenstruktur

    Ja, das Problem ist NUR, dass ich den Vector zum Zeitpunkt der Erzeugung der HashMap noch nicht habe :confused:
  14. white.apple

    Datenstruktur

    Danke für die Antwort. Ich denke aber, dass es ungeeignet wäre: ich laufe durch die Elemente und müsste jedes mal einen neuen Vektor mit Namen erstellen, z.B. "typ7".Was ist wenn im nächsten Schritt "typ9" auftaucht und im übernächsten wieder 7? Wie soll ich da noch auf den entsprechenden Vektor zugreifen? Oder verstehe ich das falsch? Ich hab's anders versucht und zwar habe ich mir eine neue Klasse angelegt: DbData (String db, String typ) Dann habe ich ein Set definiert Set<DbData> dataSet = new TreeSet<DbData>(new DbDataComparator()); Beim Durchlaufen meiner Schleife werden nun die entsprechenden Daten in den Set geschoben, in etwa so: dataSet.add(new DbData("db1", "typ7")); Da ich die DbData mit Gettern ausgestattet habe, kann ich ziemlich billig alle Datenbanken für ein Typ bekommen. Nun möchte ich aber noch fragen ob sich Obiges verbessern lässt? Wie? (Sorry, wenn die Haarspalterei nervt, aber ich möchte wirklich-wirklich was dabei lernen.) Danke für Euer Verständnis
  15. white.apple

    Datenstruktur

    Hallo, ich habe mal wieder eine Anfängerfrage :new Ich habe ein Array, das ich auslese. Die Elemente sehen z.B. so aus "db1_typ2", "db2", "db1_typ7", "db9_typ7" Anhand dessen, was vor dem "_" steht(falls vorhanden), weiß ich wie eine Datenbank heißt. Das Andere ist eine Information über den Typ der Db (keine Info ist auch eine Info). Ich suche nach einer Datenstruktur, in der ich die Zugehörigkeit abspeichern könnte, also z.B. typ2 -> db1 typ7 -> db1, db9 usw. Ich dachte an eine Map, sehe aber, dass ein Schlüssel nur einmal vorkommen darf(logisch). Ich könnte die Werte natürlich vorher z.B. in einem Set abspeichern und dann eine Map<String, Set> anlegen aber ich möchte nicht für jeden Typ einen Set anlegen müssen (ich weiß vorher nicht wie viele typen es überhaupt gibt..). Geht das 'on the fly'?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...