Array in String und String in Array - falsche Ausgaben

waikiko

Mitglied
Halllo,
eigentlich wollte ich ein String[]Array"eingabe1" in eine String[]Array"messreihen[messreihe]" kopieren, da dies aber nicht funktioniert
hat habe ich mir überlegt ich mach aus meinem String[]Array"eingabe1" ein String"eingabenkomplett" und mach diesen String"eingabenkomplett" in mein String[]Array"messreihen[messreihe]" rein.

Hat auch wunderbar funktioniert, allerdings verändern sich meine Ausagben total ins negative..
Vllt findet Ihr ja den fehler bzw was habe ich übersehen/ falsch gemacht?

Java:
private void werteErmitteln(int zahl)throws IOException{
    int a=1;
    String eingabe;
    String[] messreihen = new String[zahl];
    for(int messreihe = 0; messreihe < zahl; messreihe++){
    System.out.println("Bitte geben Sie die Messwerte der " +a+ ". Reihe getrennt durch das Zeichen , an und beenden Sie diese mit dem Zeichen !:");
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    eingabe = br.readLine();
                eingabe = cutBack(eingabe, "!",1);
                String[] eingabe1 = eingabe.substring(0, ende).split(",");

                ausgaben(eingabe1);
                String eingabenkomplett = eingabe1.toString();
                messreihen[messreihe] = eingabenkomplett;
                a++;
                System.out.println("Anzahl gueltiger Messwerte: "+eingabe1.length);
    }
    ausgabe(messreihen);
}

void ausgabe(String[] texte){
    System.out.println("Messreihen:");
    for(int i=0; i<texte.length; i++){
        System.out.print(texte[i]);
        if (i<texte.length -1)
            System.out.println();
    }
    System.out.println();
}

Die Ausgabe:
Messreihen:
[Ljava.lang.String;@24e2dae9
[Ljava.lang.String;@32c8f6f8
[Ljava.lang.String;@3ebfc8e0

Erwartete Ausgabe:
Messreihen:
1 1 1
2 2 2
3 3 3

Danke schonmal !
 
Zuletzt bearbeitet:
Fehlermeldungen gibt es aber nicht oder ?
Nur diese eigenartige Ausgabe
Dazu noch : Was möchtest du damit machen ? Also was ist dein Ziel.
 
Zuletzt bearbeitet:
Nein keine Fehlermeldungen, nur die Ausgabe ändert sich.

Möchte die Werte im Array auf bestimmte Kriterien prüfen, und die geprüften Werte sollen dann wieder in
ein Array(bei mir: messreihen[messreihe])
 
Ehrlich gesagt komm ich immer durcheinander mit den ganzen Initialisierung 😛 Aber ich mach mein bestes. Ich glaub du hast da irgendwo vergessen einer Variable einen Wert zu geben .
 
Achja was ich sehe ist, dass du eine falsche Vorstellung von toString() hast bei Arrays. Diese geben dir die Objektbezeichnung zurück (die du Ausgegeben bekommen hast).

Also an dieser Codestelle:
Java:
String eingabenkomplett = eingabe1.toString();
messreihen[messreihe] = eingabenkomplett;

Sollte eigentlich stehen:
Java:
String eingabekomplett = Arrays.toString(eingabe1);
 
Hallo, erstmal Danke für die guten Anregungen 😉

Es hat an "String eingabenkomplett = eingabe1.toString();" gelegen!
Jetzt ist meine Ausgabe zwa leicht formatiert aber schonmal in die richtige Richtung 😀
Neue Ausgabe:
Messreihen:
[1, 1, 1]
[2, 2, 2]
[3, 3, 3]
 
Ansich nicht nein, ich habe meine Ausgabe auch schon formatiert allerdings überschreibt er jetzte meine formatierung mit , und [] ..

Vor
String eingabenkomplett = Arrays.toString();
messreihen[messreihe] = eingabenkomplett;

sieht es so aus bei der Ausgabe:
Messreihen:
3 3 3 3
danach:
Messreihen:
[3, 3, 3, 3]
 
Zuletzt bearbeitet:
Nichts "überschreibt" dir dein Format.

Du rufst einmal deine gesplittete Messreihe mit deiner ausgabe-Funktion auf und danach einmal das Array wo alle Messreihen darin sind.

Ich sagte dir schon du brauchst statt dem Array.toString deine eigene Funktion die dir deine Messreihe als String zurückgibt und dir in dein Array speichert!
 
KSKB für dich um das zu verstehen was passiert:

Java:
import java.util.Arrays;

public class Test {
  
  public static void main(String... args) {
    String[] s = { "3", "3", "3" };
    String[] s2 = { Arrays.toString(s), Arrays.toString(s), Arrays.toString(s) };
    
    ausgabe(s);
    ausgabe(s2);
  }
  
  static void ausgabe(String[] texte) {
    for (int i = 0; i < texte.length; i++) {
      System.out.print(texte[i]);
      if (i < texte.length - 1) {
        System.out.println();
      }
    }
    System.out.println();
  }
}
 
Jetzt musst du dir noch eine Funktion schreiben statt Arrays.toString die dir deinen formattierten String zurück gibt. Et voila
 
Idee gut ! Aber kann ich absolut nicht umsetzen..

Ich denke ich werde es damit versuchen, aus dem String die Zeichen raus zu filtern und löschen..
Danke für die nützliche Hilfe 😀
 
What?

Java:
public static String joinStringArray(String[] arr) {
  StringBuilder builder = new StringBuilder();
  for(int i = 0; i < arr.length; i++) {
    if(i != 0) {
      builder.append(' ');
    }
    builder.append(arr[i]);
  }
  return builder.toString();
}
 

Zurück
Oben