2012-06-03 20 views
6

¿Cómo tomo un String[], y hago una copia de ese String[], pero sin la primera Cadena? Ejemplo: Si tengo este ...Cadena de Java [] copia parcial

String[] colors = {"Red", "Orange", "Yellow"}; 

¿Cómo puedo hacer una nueva cadena que es como los colores de la colección de cuerdas, pero sin rojo en ella?

Respuesta

14

Usted podría utilizar Arrays.copyOfRange:

String[] newArray = Arrays.copyOfRange(colors, 1, colors.length); 
+0

Gracias hombre! ¡Realmente me gusta! – Barakados

5
String[] colors = {"Red", "Orange", "Yellow"}; 
String[] copy = new String[colors.length - 1]; 
System.arraycopy(colors, 1, copy, 0, colors.length - 1); 
8

Olvídate de las matrices. No son un concepto para principiantes. Su tiempo se invierte mejor aprendiendo la API de Colecciones en su lugar.

/* Populate your collection. */ 
Set<String> colors = new LinkedHashSet<>(); 
colors.add("Red"); 
colors.add("Orange"); 
colors.add("Yellow"); 
... 
/* Later, create a copy and modify it. */ 
Set<String> noRed = new TreeSet<>(colors); 
noRed.remove("Red"); 
/* Alternatively, remove the first element that was inserted. */ 
List<String> shorter = new ArrayList<>(colors); 
shorter.remove(0); 

para inter-operar con las antiguas API basadas en matrices, hay un método útil en Collections:

List<String> colors = new ArrayList<>(); 
String[] tmp = colorList.split(", "); 
Collections.addAll(colors, tmp); 
+1

+1 Hay conocimiento y luego hay sabiduría. –

+1

No debería ser 'short.remove (0)' para eliminar el primer elemento? – SHiRKiT

+0

@SHiRKiT Oops, sí, gracias! – erickson

Cuestiones relacionadas