cout.width() in java ?

Status
Nicht offen für weitere Antworten.
D

Destiny1985

Gast
In C++ kann man mit dem Befehl

cout.width(int);

seine Ausgabe formatieren, so das er immer eine gleichmäßige Ausgabe erzeugt, zb sieht eine Tabelle dann so aus

123|_12|223|__ 2| ( _ = Leerstelle )

sprich er macht immer den selben Abstand mit den |, egal wie lang die zahl ist. Kann das gerade net so doll beschreiben, hoffe aber es ist klar was ich meine ?

Gibts sowas auch in java ?

mfg
 
D

Destiny1985

Gast
stevg hat gesagt.:
jo, bau dir das doch selbst.

wenns sowas nicht vordefiniert gibt, bleibt mir wohl nichts anderes über ;)

hätt ja sein können, das es den befehl gibt, dann würde ich mir das selber bauen sparen...so bleibt mir wohl nix anderes über (oder hat jemand sowas schon fertig als code vorliegen und möchte es mir zur verfügung stellen).
 
D

Destiny1985

Gast
Um nochmal auf das problem zurückzukommen..

habe jetzt folgenden Code

Code:
class MarmeladenTester
{
  public static void main(String[] args)
  {
    Marmelade kirsche = new Marmelade("Kirsche", 20, "02.09.2004");
    Marmelade erdbeer = new Marmelade("Erdbeer", 15, "15.06.2005");
    Marmelade apfel = new Marmelade("Apfel", 35, "17.10.2004");
    
    kirsche.marmeladeAusgeben();
    erdbeer.marmeladeAusgeben();
    apfel.marmeladeAusgeben();
    
  }
}

class Marmelade
{
  // Daten
  
  private String sorte;
  private int inhalt;
  private String datum;
  
  // Konstruktoren
  
  public Marmelade( String sorte, int inhalt, String datum)
  {
    this.sorte = sorte;
    this.inhalt = inhalt;
    this.datum = datum;
  }
  
  // Methoden
  
  public void marmeladeAusgeben()
  {
    System.out.println("Sorte:  " + sorte + "  Inhalt: " + inhalt + "  Datum: " + datum);
  }
}

Wie kann ich es verwirklichen, das die 3 Ausgaben, die ich machen, alle gleich formatiert sind. Wenn ihr es ausführt seht ihr, das die ersten beiden genau passen, das 3 aber verschoeben ist (da "apfel" eben kürzer ist). Gibts da sicher noch nichts vorgefertigtes in jave ( was eben dem cout.width() in c++ entspricht) ? Wäre super wenn da jemand eine lösung präsentieren könnte...

mfg
 
S

stev.glasow

Gast
Code:
String foo(int width, Object obj){
    String str = obj.toString();
    StringBuffer buf = new StringBuffer ();
    for(int i = 0;  i < width - str.length(); i++){
          buf.append(' ');
    }
    buf.append(str);
    return buf.toString();
}

so, ok? :roll:
 
D

Destiny1985

Gast
hab eben mal probiert den code von stev einzubauen...dabei kam mir folgende erkenntnis:

ich habe keine ahnung wie ich diesen code in ein programm implementiere...

kann mir jemand ein beispiel zeigen ?
 

Matflasch

Aktives Mitglied
Es gibt ne simple, aber unschöne Methode die Breite zu regeln:

Code:
String test = "Hello World";
System.out.println((test + "                    ").substring(0,20));

Also die Ausgabe, die man hat, wird in einen String umgewandelt (falls nicht eh schon vorhanden) und es werden so viele Leerzeichen angehängt, wie die Ausgabe haben soll (falls der String leer ist).
Dann wird mit einem Substring einfach der Rest abgeschnitten.

Mit nem StringBuffer sollte man das evtl doch lieber machen, aber ich wollte nur das Prinzip vermitteln ;)
Allerdings quick&dirty...also vorsicht.

Mfg, Matflasch
 
D

Destiny1985

Gast
so, mit strings läuft dsa jetzt super...

allerdings habe ich variablen mit integer- oder double-Werten, die ich auf diese Weise ausgeben möchte, wie stelle ich das an ?
 
D

Destiny1985

Gast
aber das funzt nicht ;) ich weiss nicht wie ich es korrekt einsetze ;) nu schreib halt mal nen bsp :(

welche biblioteheken muss ich da evtl hinzufüpgen das das geht ?
 

Matflasch

Aktives Mitglied
Öhm es wird genau so verwendet *g*
Code:
String.valueOf(integer);
Sorry, hatte das o nicht gross geschrieben, evtl liegt da ja der Fehler ;)
Du kannst einfach schreiben String.valueOf() und schreibst in den Klammern deinen Double/Float/Int.... Wert und schon wird es ein String. Und der Methode wird ja ein Objekt übergeben, weshalb es mit einem String auf jeden Fall klappt.

Du kannst genrell auch die Wrapperklassen verwenden...

Long.parseLong(value), Integer.parseInt(value) um z.B. einen String umzuwandeln in einen Long/Integer...
Kannst die die Wrapperklassen ja mal ansehen. Das sind die grossgeschriebenen Datentypen.

Mfg, Matflasch
 
D

Destiny1985

Gast
grml...ein blick in die api hat mir gerade verraten warum es nicht geht ;)

er hatte valueof statt valueOf geschrieben

nun tuts ;)
 
D

Destiny1985

Gast
endliuch läuft dieses beschissene programm ;) haben wir in der schule in c++ geproggt, ich sollte es dann mal in java umsetzen, das die ausgabe möglichst die selbe ist wie die der c++ - version...naja habs ganz gut hinbekommen denk ich ;)

danke allen, mfg
 
D

Destiny1985

Gast
Nee, könnt ihr gern sehen...ist noch nicht ganz fertig, muss noch die ganzen möglichen eingabefehler abfangen, vernünftig kommentieren etc...aber es funzt schonmal, und so sieht das ganze aus

Code:
// import der notwendigen Bibliotheken

import java.io.*;
import java.text.*;

class Schuldentilgung
{
  // Festlegung globaler Variablen ( static = nicht an ein Objekt gebunden )

  static double kreditbetrag = 10000, zinssatz = 5, annuitaet = 1200, zinsen,
                restschuld, zinssumme = 0, abtrag, rueckzahlsumme;
  
  // Programmeinstiegspunkt, lediglich Aufruf der Menue-Methode
  
  public static void main(String[] args) throws IOException
  {
    Menue();
  }
  
  // Methode um den fehlenden Befehl zur Löschung des Inhalts der Konsole zu
  // kompensieren. Es werden 25 Leerzeilen ausgegeben, so dass die Konsole
  // "leer" wirkt
  
  public static void Leerzeilen()
  {
    for (int i = 1; i <= 25; i++)
    {
      System.out.println();
    }
  }
  
  // Die Ueberschrift des Programmes
  
  public static void Ueberschrift()
  {
    System.out.println("Programm zur Berechnung der Tilgung einer Schuld");
    System.out.println("************************************************\n");
  }
  
  // Info mit den aktuellen Werten der Variablen
  
  public static void Info()
  {
    System.out.println("\tKreditbetrag in EUR = " + kreditbetrag);
    System.out.println("\tZinssatz in %       = " + zinssatz);
    System.out.println("\tAnnuitaet in EUR    = " + annuitaet);
  }
  
  public static void Menue() throws IOException
  {
    int menueWahl;
    String inData;

    BufferedReader userIn =
      new BufferedReader(new InputStreamReader(System.in));
    
    do
    {
      Leerzeilen();
      Ueberschrift();
      Info();
      
      System.out.println("\n[1] Eingabe");
      System.out.println("[2] Ausgabe");
      System.out.println("[0] Programm beenden");
      System.out.print("\nIhre Wahl: ");
      
      inData = userIn.readLine();
      menueWahl = Integer.parseInt(inData);
      
      switch (menueWahl)
      {
        case 1 : Eingabe(); break;
        case 2 : Ausgabe(); break;
        case 0 : System.exit(0);
      }
      
    } while (menueWahl != 0);
  }
  
  public static void Eingabe() throws IOException
  {
    Leerzeilen();
    Ueberschrift();

    String inData;

    BufferedReader userIn =
      new BufferedReader(new InputStreamReader(System.in));

    System.out.print("Kreditbetrag in EUR: ");
    inData = userIn.readLine();
    kreditbetrag = Double.parseDouble(inData);

    System.out.print("Zinssatz in %: ");
    inData = userIn.readLine();
    zinssatz = Double.parseDouble(inData);
    
    zinsen = kreditbetrag * zinssatz / 100;
    System.out.println("Zinsen im 1. Jahr: " + zinsen);
    
    System.out.print("Annuitaet: ");
    inData = userIn.readLine();
    annuitaet = Double.parseDouble(inData);
  }
  
  public static void Ausgabe() throws IOException
  {
    Leerzeilen();
    
    String jahrSTR, annuitaetSTR, zinsenSTR, zinssummeSTR, abtragSTR, restschuldSTR;
    
    NumberFormat n = NumberFormat.getInstance();
    n.setMaximumFractionDigits(2);
    
    BufferedReader userIn =
      new BufferedReader(new InputStreamReader(System.in));
    String inData;
    
    rueckzahlsumme = 0;
    double annuitaetTemp = annuitaet;
    restschuld = kreditbetrag;
    int i = 0;
    
    System.out.println("| Jahr |   Annuitaet |   Zinsen |  Zinssumme |    Abtrag | Restschuld |");
    System.out.println("-----------------------------------------------------------------------");
    
    while (restschuld > 0)
    {
      // Berechnung

      zinssumme = 0;
      zinsen = restschuld * zinssatz / 100;

      zinssumme += zinsen;

      if (restschuld < annuitaetTemp - zinsen)
          annuitaetTemp = restschuld + zinsen;

      abtrag = annuitaetTemp - zinsen;

      restschuld = restschuld - abtrag;

      i++;

      rueckzahlsumme = rueckzahlsumme + zinsen + abtrag;

      // Ausgabe

      System.out.print("| ");
      jahrSTR = String.valueOf(i);
      String jahrOut = Out(4, jahrSTR);
      System.out.print(jahrOut);
      System.out.print(" | ");
      
      annuitaetSTR = String.valueOf(n.format(annuitaetTemp));
      String annuOut = Out(11, annuitaetSTR);
      System.out.print(annuOut);
      System.out.print(" | ");
      
      zinsenSTR = String.valueOf(n.format(zinsen));
      String zinsenOut = Out(8, zinsenSTR);
      System.out.print(zinsenOut);
      System.out.print(" | ");
      
      zinssummeSTR = String.valueOf(n.format(zinssumme));
      String zinssumOut = Out(10, zinssummeSTR);
      System.out.print(zinssumOut);
      System.out.print(" | ");
      
      abtragSTR = String.valueOf(n.format(abtrag));
      String abtragOut = Out(9, abtragSTR);
      System.out.print(abtragOut);
      System.out.print(" | ");
      
      restschuldSTR = String.valueOf(n.format(restschuld));
      String restOut = Out(10, restschuldSTR);
      System.out.print(restOut);
      System.out.print(" |");
      
      System.out.println();
    }
    
    System.out.print("\nBeliebige Taste druecken um zum Menue zu gelangen");
    inData = userIn.readLine();
  }
  
  static String Out(int width, Object obj)
  {
    String str = obj.toString();
    StringBuffer buf = new StringBuffer ();

    for(int i = 0;  i < width - str.length(); i++)
    {
      buf.append(' ');
    }

    buf.append(str);

    return buf.toString();
  }
}
 

Wildcard

Top Contributor
Du bist doch jetzt langsam lange genug dabei um das besser zu können!?

-Coding conventions
-Kapselung
-Exception-Handling
-nicht-alles-static-machen-weils-schneller-geht
... :noe:
 
D

Destiny1985

Gast
joa wildcard, das sollte eine umsetzung eines c++ programmes sein, das wir in der schule hatten, und der lehrer wollte das ich es so nah wie möglich am original halte. daher static, keine kapselung, exceptions fallen lassen etc...sowas haben wir da in c++ noch nicht und kein mensch würde was kapieren ;)

coding conventions ? wo hab ich da was falsch gemacht oO

ich fang jetzt wieder an ein c++ - programm aus dem unterricht in java zu schreiben, mache davon dann 2 versionen, eine nahe am original und eine objektorientiert...kannst dann mal draufgucken ob das ok ist :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
G Sanduhr (width) Java Basics - Anfänger-Themen 12
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
richis-fragen Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
A Java Kurs / Tutorial Java Basics - Anfänger-Themen 6
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
P Java 2n Potenzieren Java Basics - Anfänger-Themen 1
J Java Hamster Java Basics - Anfänger-Themen 4
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
V Die Funktion des neuen Schlüsselworts in Java Java Basics - Anfänger-Themen 1
W Junit-Test (Java) Java Basics - Anfänger-Themen 4
W Testfälle bei Java ( Junit-Test) Java Basics - Anfänger-Themen 3
laxla123 If-else Java Java Basics - Anfänger-Themen 4
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
S Substring in java Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben