Ich muss zwei Dateien verketten String
Arrays in Java.
void f(String[] first, String[] second) {
String[] both = ???
}
Wie lässt sich dies am einfachsten bewerkstelligen?
Ich muss zwei Dateien verketten String
Arrays in Java.
void f(String[] first, String[] second) {
String[] both = ???
}
Wie lässt sich dies am einfachsten bewerkstelligen?
El Funktions-Java Bibliothek verfügt über eine Array-Wrapper-Klasse, die Arrays mit praktischen Methoden wie Verkettung ausstattet.
import static fj.data.Array.array;
...und dann
Array<String> both = array(first).append(array(second));
Um das ausgepackte Array wieder herauszuholen, rufen Sie
String[] s = both.array();
Hier ist eine Anpassung der Lösung von silvertab, die mit Generika nachgerüstet wurde:
static <T> T[] concat(T[] a, T[] b) {
final int alen = a.length;
final int blen = b.length;
final T[] result = (T[]) java.lang.reflect.Array.
newInstance(a.getClass().getComponentType(), alen + blen);
System.arraycopy(a, 0, result, 0, alen);
System.arraycopy(b, 0, result, alen, blen);
return result;
}
ANMERKUNG: Siehe Joachims Antwort für eine Java 6-Lösung. Sie beseitigt nicht nur die Warnung, sondern ist auch kürzer, effizienter und leichter zu lesen!
Wenn Sie diese Methode verwenden, brauchen Sie keine Klasse eines Drittanbieters zu importieren.
Wenn Sie verketten wollen String
Beispielcode für die Verknüpfung zweier String-Arrays
public static String[] combineString(String[] first, String[] second){
int length = first.length + second.length;
String[] result = new String[length];
System.arraycopy(first, 0, result, 0, first.length);
System.arraycopy(second, 0, result, first.length, second.length);
return result;
}
Wenn Sie verketten wollen Int
Beispielcode für die Verknüpfung zweier Integer-Arrays
public static int[] combineInt(int[] a, int[] b){
int length = a.length + b.length;
int[] result = new int[length];
System.arraycopy(a, 0, result, 0, a.length);
System.arraycopy(b, 0, result, a.length, b.length);
return result;
}
Hier die Hauptmethode
public static void main(String[] args) {
String [] first = {"a", "b", "c"};
String [] second = {"d", "e"};
String [] joined = combineString(first, second);
System.out.println("concatenated String array : " + Arrays.toString(joined));
int[] array1 = {101,102,103,104};
int[] array2 = {105,106,107,108};
int[] concatenateInt = combineInt(array1, array2);
System.out.println("concatenated Int array : " + Arrays.toString(concatenateInt));
}
}
Wir können auch diesen Weg nutzen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.