new initialize array java arrays string position

java - initialize - string[] c#



¿Cómo encontrar el índice de la matriz STRING en Java a partir de un valor dado? (12)

Quería saber si hay un método nativo en matriz para que Java obtenga el índice de la tabla para un valor dado.

Digamos que mi tabla contiene estas cadenas:

public static final String[] TYPES = { "Sedan", "Compact", "Roadster", "Minivan", "SUV", "Convertible", "Cargo", "Others" };

Digamos que el usuario debe ingresar el tipo de automóvil y luego, en segundo plano, el programa toma esa cadena y obtiene su posición en la matriz.

Entonces, si la persona ingresa: Sedan Debería tomar el puesto 0 y almacenarlo en el objeto de Cars creado por mi programa ...


No existe un método de índice nativo en las matrices de Java. Necesitará escribir su propio método para esto.


Prueba esta función:

public int indexOfArray(String input){ for(int i=0;i<TYPES,length();i++) { if(TYPES[i].equals(input)) { return i ; } } return -1 // if the text not found the function return -1 }


Sin método incorporado. Pero puedes implementar uno fácilmente:

public static int getIndexOf(String[] strings, String item) { for (int i = 0; i < strings.length; i++) { if (item.equals(strings[i])) return i; } return -1; }


Tenía una selección de todas las palabras en inglés. Mi matriz tiene elementos únicos. Pero usando ...

Arrays.asList(TYPES).indexOf(myString);

... siempre me dio indexOutOfBoundException .

Entonces, lo intenté:

Arrays.asList(TYPES).lastIndexOf(myString);

Y funcionó. Si sus matrices no tienen el mismo elemento dos veces, puede usar:

Arrays.asList(TYPES).lastIndexOf(myString);


Testable mockable interafce

public interface IArrayUtility<T> { int find(T[] list, T item); }

implementación

public class ArrayUtility<T> implements IArrayUtility<T> { @Override public int find(T[] array, T search) { if(array == null || array.length == 0 || search == null) { return -1; } int position = 0; for(T item : array) { if(item.equals(search)) { return position; } else { ++position; } } return -1; } }

Prueba

@Test public void testArrayUtilityFindForExistentItemReturnsPosition() { // Arrange String search = "bus"; String[] array = {"car", search, "motorbike"}; // Act int position = arrayUtility.find(array, search); // Assert Assert.assertEquals(position, 1); }


Una manera fácil sería iterar sobre los elementos en la matriz en un bucle.

for (var i = 0; i < arrayLength; i++) { // (string) Compare the given string with myArray[i] // if it matches store/save i and exit the loop. }

Definitivamente habría mejores formas, pero para una pequeña cantidad de artículos esto debería ser extremadamente rápido. Por cierto, esto es javascript pero el mismo método debería funcionar en casi todos los lenguajes de programación.


Use esto como un método con x siendo cualquier número inicialmente. La cadena y que pasa la consola y v es la matriz para buscar!

public static int getIndex(int x, String y, String[]v){ for(int m = 0; m < v.length; m++){ if (v[m].equalsIgnoreCase(y)){ x = m; } } return x; }


Use la clase Arrays para hacer esto

Arrays.sort(TYPES); int index = Arrays.binarySearch(TYPES, "Sedan");


prueba esto en su lugar

org.apache.commons.lang.ArrayUtils.indexOf(array, value);


Arrays.asList(TYPES).indexOf("Sedan")


String carName = // insert code here int index = -1; for (int i=0;i<TYPES.length;i++) { if (TYPES[i].equals(carName)) { index = i; break; } }

Después de este index es el índice de matriz de su automóvil, o -1 si no existe.


for (int i = 0; i < Types.length; i++) { if(TYPES[i].equals(userString)){ return i; } } return -1;//not found

Usted puede hacer esto también:

return Arrays.asList(Types).indexOf(userSTring);