Guten Abend,
ich stehe wieder auf dem Schlauch.
Ich möchte zum Test den Inhalt zweier String-Array miteinander vergleichen. Das erste Array [starr] ist hart gecodet. Die Daten vom Zweiten sollen über den Scanner eingegeben werden mit Hilfe eines Zwischenstrings "sys", der dann mit der Methode split() geteilt werden soll. In der for-Schleife klappt der Vergleich auch einwandfrei. Ich habe dem Array "gescannt" 4 Plätze zugeteilt, aber dennoch schreibt mir die Methode split() ein n-Stelliges Array (überprüft mit: System.out.println(gescannt.length)). Ich habe diesen Umstand abgefangen, indem ich split() ein Limit (4) gesetzt habe. Bloß warum schreibt split() mir ein, meiner Meinung nach, dynamisches Array (ist es das eigentlich?) Warum bekomme ich trotz Begrenzung des Arrays keine "Out of Bounds Exception"?, die ich mit trycatch abfangen könnte, wo ist mein Fehler.
Bitte sehr um Antwort
[CODE lang="java" title="IndexOffTest.java"]
import java.util.*;
import java.lang.*;
public class IndexofTest {
public static void main(String[] args) {
String[] starr = {"5","3","4","1"};
Scanner sc = new Scanner(System.in);
String[] gescannt = new String[4];
System.out.println("Bitte 4 - stelligen numerischen Code eingeben!");
String sys = sc.nextLine();
gescannt = sys.split("", 4);
for (int a = 0; a < starr.length; a++) {
if (gescannt[a].equals(starr[a])) {
System.out.println("an Stelle "+ (a+1)+ " Übereinstimmung gefunden");
} else {
System.out.println("Keine Übereinstimmung");
}
}
System.out.println(Arrays.toString(gescannt));
System.out.println(gescannt.length);
System.out.println(Arrays.toString(starr));
}
}[/CODE]
ich stehe wieder auf dem Schlauch.
Ich möchte zum Test den Inhalt zweier String-Array miteinander vergleichen. Das erste Array [starr] ist hart gecodet. Die Daten vom Zweiten sollen über den Scanner eingegeben werden mit Hilfe eines Zwischenstrings "sys", der dann mit der Methode split() geteilt werden soll. In der for-Schleife klappt der Vergleich auch einwandfrei. Ich habe dem Array "gescannt" 4 Plätze zugeteilt, aber dennoch schreibt mir die Methode split() ein n-Stelliges Array (überprüft mit: System.out.println(gescannt.length)). Ich habe diesen Umstand abgefangen, indem ich split() ein Limit (4) gesetzt habe. Bloß warum schreibt split() mir ein, meiner Meinung nach, dynamisches Array (ist es das eigentlich?) Warum bekomme ich trotz Begrenzung des Arrays keine "Out of Bounds Exception"?, die ich mit trycatch abfangen könnte, wo ist mein Fehler.
Bitte sehr um Antwort
[CODE lang="java" title="IndexOffTest.java"]
import java.util.*;
import java.lang.*;
public class IndexofTest {
public static void main(String[] args) {
String[] starr = {"5","3","4","1"};
Scanner sc = new Scanner(System.in);
String[] gescannt = new String[4];
System.out.println("Bitte 4 - stelligen numerischen Code eingeben!");
String sys = sc.nextLine();
gescannt = sys.split("", 4);
for (int a = 0; a < starr.length; a++) {
if (gescannt[a].equals(starr[a])) {
System.out.println("an Stelle "+ (a+1)+ " Übereinstimmung gefunden");
} else {
System.out.println("Keine Übereinstimmung");
}
}
System.out.println(Arrays.toString(gescannt));
System.out.println(gescannt.length);
System.out.println(Arrays.toString(starr));
}
}[/CODE]