Ich habe ein String[]
die mindestens 2 Elemente hat.
Ich möchte eine neue erstellen String[]
das hat Elemente 1 durch den Rest von ihnen. Also … im Grunde einfach den ersten überspringen.
Kann man das in einer Zeile machen? leicht?
NullVoxPopuli
Ich habe ein String[]
die mindestens 2 Elemente hat.
Ich möchte eine neue erstellen String[]
das hat Elemente 1 durch den Rest von ihnen. Also … im Grunde einfach den ersten überspringen.
Kann man das in einer Zeile machen? leicht?
Bozo
Verwenden copyOfRange
verfügbar seit Java 1.6:
Arrays.copyOfRange(array, 1, array.length);
Zu den Alternativen gehören:
ArrayUtils.subarray(array, 1, array.length)
von Apache commons-langSystem.arraycopy(...)
– ziemlich unfreundlich mit der langen Parameterliste.Der Endindex ist exklusiv
– Markus Peters
27. Januar 2011 um 21:49 Uhr
Warte, heißt das also, ich brauche eine +1 für die .length?
– NullVoxPopuli
27. Januar 2011 um 22:26 Uhr
Nein, da Arrays 0-basiert sind. Halboffene Bereiche und 0-basierte Indizierung funktionieren so gut zusammen.
– ILMTitan
27. Januar 2011 um 22:28 Uhr
Entschuldigung, Java-Leute, aber das sieht aus dem Python-Code einfach absurd aus
– Matthäus
12. März 2020 um 13:40 Uhr
String[] subset = Arrays.copyOfRange(originalArray, 1, originalArray.length);
Siehe auch:
Grzegorz Piwowarek
Stream API könnte auch verwendet werden:
String[] array = {"A", "B"};
Arrays.stream(array).skip(1).toArray(String[]::new);
Allerdings sollte die Antwort von Bozho bevorzugt werden.
@AndreaBergonzo Leider haben sie Methoden für bereitgestellt String[]
, int[]
, long[]
, double[]
aber nicht für byte[]
🙂
– Grzegorz Piwowarek
24. April 2018 um 17:17 Uhr