¿De qué sirve convertir la matriz a una cadena en esta línea "System.out.println (new String (array1));"

Evidentemente, la persona que escribió esto sabía que las matrices no anulaban a String. Todos nos hemos quemado, solo se necesita una vez para imprimir algo y recuperar un código hash para que quede claro.

Pero tal vez el escritor no sabía que println tiene una anulación para char []; Sé que no estaba al tanto hasta hace unos minutos. Puedes hacer mucha programación Java sin necesidad de eso. Si de hecho no lo sabe, tendría sentido hacer la conversión explícitamente como el código publicado.

(O igual de probable, podría ser que el autor lo supiera pero no quisiera asumir que sus alumnos lo sabían. Cuando escribes un código para que los principiantes lo lean, quieres evitar confundir al lector con algo inusual, aunque solo sea para evitar tener que responder las mismas preguntas de novato una y otra vez).

Si la pregunta es cómo explicar esto a los estudiantes, es posible que desee hablar sobre cómo en el software todo está cambiando todo el tiempo, y nuestro objetivo es hacer que el software funcione con la presión del tiempo que sea lo suficientemente bueno a pesar de que nuestro conocimiento es imperfecto.

También existe la oportunidad de hablar sobre las ramificaciones de las decisiones de diseño, comparando cómo en Java tenemos una diferenciación entre cadenas y matrices de caracteres, y primitivas y objetos, a diferencia de lo que ocurre en Haskell. Por lo tanto, tenemos estas opciones de diseño que causan casos de esquina extraños y fealdad en la API, y los implementadores de Java no pueden deshacerse de este problema debido a su preocupación por la compatibilidad con versiones anteriores. Java está lleno de casos poco intuitivos, vea el libro de rompecabezas de Bloch y Gafter .

A menudo, los maestros (específicamente los estudiantes de posgrado) se encuentran en una situación en la que, con poca antelación, tienen que enseñar un idioma que nunca antes habían usado. Los escritores de libros de texto están trabajando para terminar su libro y ocasionalmente pueden perder algo. A veces el lenguaje tiene casos extraños que no es justo esperar que todos sepan. Los estudiantes tienen que ajustar sus expectativas a estas realidades.

Respuesta 1

Es útil en caso de que lo concatene con una cadena. Ex:-

char [] array1 = 

        {'d','e','f','g','h','i'};
        char [] array2 = new char[15];

        System.arraycopy(array1, 3, array2, 0, 7);
        System.out.println(new String(array1));

Si tuviera que imprimir algo Algo array1 . Di " Hola defghi "

Código incorrecto

System.out.println("Something"+array1)); //"Something 'array type' as string and char array is being concatenated.

Código correcto

 System.out.println("Something"+new String(array1));

Es un ejemplo para mostrar el uso. Aunque el uso de new String()no tiene importancia en su código.

Respuesta: 2

Tengo un proyecto que procesa algunos datos proporcionados en términos de archivos CSV. Para fines de prueba, quiero crear otra aplicación separada que simule la inyección de los archivos en ...

Hola, quiero eliminar todas las filas de mi tabla mysql llamada "kosik" y pasarlas a otra tabla llamada "obj_zoznam". Estoy usando este código en java: String orderstatus = "Aceptado"; tratar { ...

Hola, escribí un applet de Java y me pide permisos como: javax.smartcardio.CardPermission java.lang.RuntimePermission, ¿dónde está este archivo de manifiesto y cómo puedo agregarle estos permisos?

Estoy tratando de implementar mi propia aplicación de ejercicios para usar en el gimnasio. Me topé con dudas sobre qué colección me quedaría mejor. Entonces, la clase que usa la colección llamada "Ejercicio" y tiene 3 ...