length - java array string
¿Obtener solo parte de un Array en Java? (8)
Arrays.copyOfRange (array, from, to);
El parámetro de entrada ''a'' es inclusivo. así que en su código, agregue un valor ''a'' + 1 para solucionar su problema.
Tengo una matriz de enteros en Java, me gustaría usar solo una parte de ella. Sé que en Python puedes hacer algo como esta matriz [índice:] y devuelve la matriz del índice. Es algo así posible en Java.
Echa un vistazo a copyOfRange ; y ejemplo:
int[] arr2 = Arrays.copyOfRange(arr,0,3);
Podrías envolver tu matriz como una lista y solicitar una lista secundaria.
MyClass[] array = ...;
List<MyClass> subArray = Arrays.asList(array).subList(index, array.length);
Puedes probar:
System.arraycopy(sourceArray, 0, targetArray, 0, targetArray.length);// copies whole array
// copies elements 1 and 2 from sourceArray to targetArray
System.arraycopy(sourceArray, 1, targetArray, 0, 2);
Ver javadoc para el sistema .
Puedes usar algo como esto: Arrays#copyOfRange
Sí, puedes usar java.util.Arrays
Hace lo mismo (tenga en cuenta que hay una copia: no cambia la matriz inicial).
Si está utilizando Java 1.6 o superior, puede usar Arrays.copyOfRange
para copiar una parte de la matriz. Desde el javadoc:
Copia el rango especificado de la matriz especificada en una nueva matriz. El índice inicial del rango (desde) debe estar entre cero y
original.length
, inclusive. El valor enoriginal[from]
se coloca en el elemento inicial de la copia (a menos quefrom == original.length
ofrom == to
). Los valores de los elementos posteriores de la matriz original se colocan en los elementos posteriores de la copia. El índice final del rango (to
), que debe ser mayor o igual quefrom
, puede ser mayor queoriginal.length
, en cuyo caso se colocafalse
en todos los elementos de la copia cuyo índice es mayor o igual que eloriginal.length - from
. La longitud de la matriz devuelta seráto - from
.
Aquí hay un ejemplo simple :
/**
* @Program that Copies the specified range of the specified array into a new
* array.
* CopyofRange8Array.java
* Author:-RoseIndia Team
* Date:-15-May-2008
*/
import java.util.*;
public class CopyofRange8Array {
public static void main(String[] args) {
//creating a short array
Object T[]={"Rose","India","Net","Limited","Rohini"};
// //Copies the specified short array upto specified range,
Object T1[] = Arrays.copyOfRange(T, 1,5);
for (int i = 0; i < T1.length; i++)
//Displaying the Copied short array upto specified range
System.out.println(T1[i]);
}
}
Use el método copyOfRange
de la clase java.util.Arrays :
int[] newArray = Arrays.copyOfRange(oldArray, startIndex, endIndex);
startIndex es el índice inicial del rango a copiar, inclusive.
endIndex es el índice final del rango a copiar, exclusivo. (Este índice puede estar fuera de la matriz)
P.ej:
//index 0 1 2 3 4
int[] arr = {10, 20, 30, 40, 50};
Arrays.copyOfRange(arr, 0, 2); // returns {10, 20}
Arrays.copyOfRange(arr, 1, 4); // returns {20, 30, 40}
Arrays.copyOfRange(arr, 2, arr.length); // returns {30, 40, 50} (length = 5)