Frage von timi042, 47

printf (Komplizierte Tabelle) Java?

Liebe Community, ich möchte mit printf eine Tabelle erzeugen welche t(Zeit) und U(Spannung) ausgibt. Sie soll in etwa so aussehen: http://2we26u4fam7n16rz3a44uhbe1bq2.wpengine.netdna-cdn.com/wp-content/uploads/0... (blos ohne die Rechte Seite und mit meinen Werten) Ich berechne die Aufladung eines Kondensators by the way.

Hier ein Ausschnitt meiner Source:

import jxl.*;
import java.io.*;
import java.io.File;
import java.io.IOException;
import java.text.BreakIterator;
import java.util.Date;
 
import jxl.*;
import jxl.write.*;
import jxl.write.Boolean;
import jxl.write.Number;
import jxl.write.biff.RowsExceededException;
import java.util.*;
public class kondensator_note {
    
    public static void main(String[] args) {
        
    
        try {
            InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        System.out.print("Gib U ein: "+"\n");
        double u = Integer.parseInt(br.readLine());
        System.out.print("Gib I ein: \n");
        double i = Integer.parseInt(br.readLine());
        System.out.print("Gib R (Vorwiederstand) ein: \n");
        double r = Integer.parseInt(br.readLine());
        System.out.print("Gib t (in ms) ein: \n");
        double t = Integer.parseInt(br.readLine());
        
        //Hier wird gerechnet
        double q = i*t;
        double c = q/u;
        double T = r*c; //T ist die Zeitkonstante

Wie kann ich nun eine Tabelle mit printf ausgeben? In der alle Werte für t und U stehen?

Antwort
von k3ltis, 35

Mit String.format(String formatText, Object... arguments) sollte das problemlos umzusetzen sein.
Man beachte die formatter-Notation "%10d" um Beispielsweise automatische Leerzeichen zu generieren.

Lass dir einfach mal
String.format("%10s %10s %10s %10s", "dies", "ist", "ein", "test");
ausgeben und du siehst, was ich meine.

Ich empfehle dir dringend mal einen Blick in die Java Coding Conventions zu riskieren. Da sehe ich einige grauslige Dinge in deinem Code :)

Kommentar von timi042 ,

Welche grausigen Dinge siehst du denn? :)
Das doppel T und t habe ich grade selber bemerkt :) Und das System.out.print ist nur zur kontrolle für mich und wird später entfernt ^^

Kommentar von k3ltis ,
  • Klassennamen werden groß geschrieben und ohne underscore "_". Dafür benutzt man die UpperCaseNotation.
  • Mit Variablennamen wie "isr", "br", "u", "i", "t" kannst du und auch sonst jemand nach 2 Wochen nichts mehr anfangen.
  • In der Main-Methode Logik einzubauen rächt sich irgendwann. Lager deine Anwedungslogik doch einfach in eine Methode aus, erstelle ein Klassenobjekt und arbeite damit. Dann kannst du das auch mehrmals instanziieren und viele TAbellen ausgeben.

Ist ja nicht bös gemeint. Wenn man für sich alleine arbeitet ist das eine Sache, aber sobald mehr als eine Person mit einem Code arbeiten muss beginnt die Zeit der Verzweiflung.

Kommentar von timi042 ,

Ok punkt 1 und 2 kann ich nachvollziehen aber Punkt3 ist zu schwer für mich :)

Keine passende Antwort gefunden?

Fragen Sie die Community