Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich bin mir sicher es ist irgendwie zu bewerkstelligen, doch die Art und Weise ist mir mehr als schleierhaft. Und dementsprechend kann ich mir auch keine Lösung ersinnen.
Unbegrenzte Arrays gibt es nicht. Was es gibt, sind dynamische ("mitwachsende") Datenstrukturen wie die umspeichernde java.util.ArrayList oder die doppelt verkettete Liste java.util.LinkedList, oder oder oder. Anzumerken dabei ist aber, dass diese durch den Speicher ebenfalls begrenzt sind.
String[] stringArray = new String[LENGTH];
String[] temp;
String string = "Text";
//Jetzt zum Hinzufügen von 'string' in 'stringArray', das ja die feste Länge 'LENGTH' hat.
temp = new String[stringArray.length + 1];
System.arraycopy(stringArray, 0, temp, 0, stringArray.length);
temp[stringArray.length + 1] = string;
stringArray = temp;
Etwas umständlich, aber auf diese Art "erweiterst" du sozusagen dein String-Array. Löschen funktioniert damit natürlich auch wenn man mitdenken kann .
Vielleicht könnt ihr mir bei meinem Problem helfen!
Ich würde gerne meine "String zeile =""; in String[] bild = new String[]{}; einfügen. Und zwar innerhalb meiner while Schleife. Mein Code schaut zurzeit so aus:
Java:
//Scanner importieren
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
//Scanner erstellen
Scanner scan = new Scanner(System.in);
// Variablen werden erstellt
int zeilenanzahl = 0;
int zeilenlaenge = 0;
int readzahl = 0;
boolean fehler = false;
String zeile = "";
//Bild Speichern
String[] bild = new String[]{};
//Überprüfung von "read"
if(scan.next().equals("read")){
//nach "read" muss eine Zahl kommen
if(scan.hasNextInt()){
//Die Zahl die nach "read" steht wird in readanzahl gespeichert
readzahl = scan.nextInt();
}
//Fehlerausgabe
else{
System.out.println("INPUT MISMATCH");
fehler = true;
return;
}
}
//Fehlerausgabe
else{
System.out.println("INPUT MISMATCH");
fehler = true;
return;
}
//While Schleife, wird durchlaufen solange der Scanner eine Eingabe bekommt
while(fehler == false && readzahl > zeilenanzahl && scan.hasNext()){
//Hier wird die eingabe des Scanners gespeichert
zeile = scan.next();
bild.add(zeile);
//Die breite wird mit 0 eingelesen.
if(zeilenlaenge == 0){
zeilenlaenge = zeile.length();
}
//Wenn die breite nicht mit der zeilenlänge übereinstimmt, dann -> Fehler -> Fehlerausgabe erfolgt!
else
{
if(zeilenlaenge != zeile.length()){
fehler = true;
}
}
//Anzanl der Zeilen wird erhöht, weil wir eventuel mehr als 1 Zeile haben wollen :-)
zeilenanzahl++;
}
//Fehlerüberprüfung
if(readzahl > zeilenanzahl || fehler == true){
//Fehler entdeckt -> Fehlerausgabe erfolgt!
System.out.println("INPUT MISMATCH");
}
else
{
//Das Bild wird ausgegen
System.out.println(bild);
//Breite und Höhe des Bildes wird ausgegeben
System.out.println(zeilenlaenge + " " + zeilenanzahl);
}
}
}
bild.add(zeile); -> Diese Zeile ist zurzeit noch falsch! Ich habs vorher mit ArrayList probiert und damit hat es auch wunderbar geklappt, nur sollte ich es mit den Type: String[] lösen und dort gibts leider keinen add befehl