Ich habe ein kleines Programm geschrieben und ein kleines Problem.
Auch wenn die Strucktur nicht gut aussieht, geht es um eine kleine Funktion die aus Python kenne. Ich möchte eine Liste auf einen String übertragen. Die liste besteht aus char werten und ist als String gespeichert.
Ich habe heute lange gesucht, aber leider keine Lösung bisher gefunden.
In Python gibt es ja die .jion funktion, aber anscheinend gibt es sowas in Java nicht. Kann mir jemand helfen?
Mein Ziel ist es in der Ausgabe, im Interface keine Komma, und keine [ ] zu haben.
Ich weis einige Zeilen sind überflüssig, aber diese werde später noch entfernt
Auch wenn die Strucktur nicht gut aussieht, geht es um eine kleine Funktion die aus Python kenne. Ich möchte eine Liste auf einen String übertragen. Die liste besteht aus char werten und ist als String gespeichert.
Ich habe heute lange gesucht, aber leider keine Lösung bisher gefunden.
In Python gibt es ja die .jion funktion, aber anscheinend gibt es sowas in Java nicht. Kann mir jemand helfen?
Mein Ziel ist es in der Ausgabe, im Interface keine Komma, und keine [ ] zu haben.
Java:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
public class Main {
static JLabel anzeige = new JLabel("Ich gebe das Ergebnis aus");
static String test = "";
static ArrayList<String> gedrehteliste = new ArrayList<>();
public static void main(String[] args) {
openUI();
}
public static void openUI(){
//Aufbau und Eigenschaften des Hauptfensters
JFrame frame = new JFrame("Mein Umrechner");
frame.setSize(400,200);
frame.setLocation(100,150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Eigenschaften der Felder wie Position, Inhalt usw.
JLabel text_dezimalzahl = new JLabel("Dezimalzahl");
text_dezimalzahl.setBounds(10,10,150,20);
JTextField dezimalzahl_eingabe = new JTextField();
dezimalzahl_eingabe.setBounds(100,10,150,20);
JLabel text_basis = new JLabel("Basis");
text_basis.setBounds(10,35,150,20);
JTextField basis_eingabe = new JTextField();
basis_eingabe.setBounds(100,35,150,20);
JLabel anzeige = new JLabel("Ich gebe das Ergebnis aus");
anzeige.setBounds(87,75,150,20);
JButton delete = new JButton("DEL");
delete.setBounds(250,60,70,60);
delete.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
anzeige.setText("");
}
});
JButton ergebnis = new JButton("OK");
ergebnis.setBounds(10,60,70,60);
ergebnis.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String dezimalzahl_umwandlung = dezimalzahl_eingabe.getText();
String basis_umwandlung = basis_eingabe.getText();
Integer dezimalzahl = Integer.parseInt(dezimalzahl_umwandlung);
Integer basis = Integer.parseInt(basis_umwandlung);
umrechnen(dezimalzahl,basis);
anzeige.setText(test);
//anzeige.setText(ascii);
}
});
//erstellen der Felder im Interface
frame.add(delete);
frame.add(anzeige);
frame.add(ergebnis);
frame.add(text_basis);
frame.add(basis_eingabe);
frame.add(dezimalzahl_eingabe);
frame.add(text_dezimalzahl);
frame.setLayout(null);
frame.setVisible(true);
}
public static ArrayList<String> umrechnen(int dezimalzahl, int basis) {
ArrayList<String> ascii = new ArrayList<>();
while (dezimalzahl > 0) { //ürsprüngliche Formel aus Python
int rechnung = (int) (((dezimalzahl / (float) basis) - (int) (dezimalzahl / basis)) * basis);
//Umwandeln des Ergebnis in Ascii wenn das Ergebnis höher 10
if (rechnung > 10) {
// Ergebnis wird +55 gerechnet und als String in die Liste eingetragen
// +55 wird verwendet um einen Buchstaben aus der Ascii Liste zu nutzen
ascii.add(Character.toString((char) (rechnung + 55)));
} else {
ascii.add(Integer.toString(rechnung));
}
//übertrag des Restes der durch die Schleife muss
dezimalzahl = (int) (dezimalzahl / basis);
// zum drehen der Liste
}
for (int i = ascii.size() - 1; i >= 0; i--) {
gedrehteliste.add(ascii.get(i));
}
test = gedrehteliste.toString();
return gedrehteliste;
}
}
Ich weis einige Zeilen sind überflüssig, aber diese werde später noch entfernt