Intercambiar valores de cadena sin variable temporal

El hecho de que necesites hacerte la pregunta de lo que está sucediendo aquí, significa que debes considerar seriamente usar construcciones como esta en tu código.

Dado que en Java las expresiones se evalúan de izquierda a derecha (ver aquí - sección 'Orden de evaluación').

Esto es lo que sucede paso a paso en caso de b = a + (a = b).substring(0, 0)

  • Rellenar avariable con su valor:

    b = "abc" + (a = b).substring(0, 0);

  • Rellene la variable b con su valor:

    b = "abc" + (a = "def").substring(0, 0);

  • Como el primer atributo de la concatenación de cadenas ( +) ya está evaluado, evalúe el segundo, que comienza con la reasignación "def"a a.

    b = "abc" + "def".substring(0, 0); //Now a = "def"

  • Correr substringen"def"

    b = "abc" + ""

  • Concatenar

    b = "abc"

  • Reasigne bay ahora b = "abc" (mientras que, como hemos mostrado antes, a se ha reasignado a "def".

Respuesta 1

¿Qué tipo de datos Java podría almacenar un gran valor numérico, como 9999999999?

Leí algunos artículos sobre fragmentos, pero todavía estoy confundido acerca de cómo hacer qué. Tengo una actividad principal, que muestra dos fragmentos uno al lado del otro. En uno de los fragmentos tengo un botón y ...

Tengo una pequeña pregunta técnica, ¿es lo mismo llamar: public static staticfp double myMethod (double phi) {return Math.exp (phi); } o: public static double myMethod (double phi) ...

El problema ocurre si: ejecuto la aplicación desde Android Studio, la aplicación se ejecuta correctamente, luego borro la aplicación e intento instalar debug.apk desde ... / app / build / salidas / apk / debug.apk Mi sistema operativo es Ubuntu 16.04, ...