quitar para metodo especiales espacios espacio eliminar detectar contar caracteres blanco agregar android string-concatenation

android - para - quitar espacios en blanco c#



¿Cómo mantener los espacios al final y/o al principio de una cadena? (15)

Tengo que concatenar estas dos cadenas de mis archivos de recursos / valores:

<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string> <string name="Toast_Memory_GameWon_part2"> flips !</string>

Lo hago de esta manera:

String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+total_flips+getString(R.string.Toast_Memory_GameWon_part2); Toast.makeText(this, message_all_pairs_found, 1000).show();

Pero los espacios al final de la primera cadena y al principio de la segunda cadena han desaparecido (cuando se muestra el Toast) ...

Qué tengo que hacer ?

Supongo que la respuesta está en algún lugar aquí en este enlace de documentación.

o es algo así como usar &amp ; para el carácter "&"?


Es posible espaciar con diferente ancho:

<string name="space_demo">|&#x20;|&#x2009;|&#x200A;||</string>

| Espacio | Espacio delgado | Espacio para el cabello | sin espacio |

Visualización:


Es posible que esto no responda a la pregunta (Cómo mantener espacios en blanco en XML), pero puede resolver el problema subyacente con mayor gracia.

En lugar de confiar solo en los recursos XML, concatene utilizando cadenas de formato. Así que primero quita los espacios en blanco

<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on</string> <string name="Toast_Memory_GameWon_part2">flips !</string>

Y luego construir su cadena de manera diferente:

String message_all_pairs_found = String.format(Locale.getDefault(), "%s %d %s", getString(R.string.Toast_Memory_GameWon_part1), total_flips, getString(R.string.Toast_Memory_GameWon_part2); Toast.makeText(this, message_all_pairs_found, 1000).show();


Esta documentation sugiere que la cita funcionará:

<string name="my_str_spaces">" Before and after? "</string>


Esta pregunta puede ser antigua, pero a partir de ahora la forma más fácil de hacerlo es agregar comillas. Por ejemplo:

<string name="Toast_Memory_GameWon_part1">"you found ALL PAIRS ! on "</string> <string name="Toast_Memory_GameWon_part2">" flips !"</string>


Incluso si utiliza el formato de cadena, a veces todavía necesita espacios en blanco al principio o al final de la cadena. Para estos casos, ni el escape con / , ni el atributo xml:space ayuda. Debe utilizar la entidad HTML &#160; para un espacio en blanco.

Utilice &#160; Para espacios en blanco no rompibles.
Utilice &#032; para el espacio regular.


Me encontré con el mismo problema. Quería dejar un espacio en blanco al final de una cadena de recursos que representa un nombre de campo en pantalla.

Encontré una solución en este informe de problemas: https://github.com/iBotPeaches/Apktool/issues/124

Esta es la misma idea que sugiere Duessi. Inserte /u0020 directamente en el XML para un espacio en blanco que desee conservar.

Ejemplo:

<string name="your_id">Score :/u0020</string>

El reemplazo se realiza en tiempo de compilación, por lo tanto, no afectará el rendimiento de tu juego.


No funciona con xml: space = "preserve"

así que lo hice de la manera más rápida =>

Simplemente agregué un + "" + donde lo necesitaba ...

String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+" "+total_flips+" "+getString(R.string.Toast_Memory_GameWon_part2);


No tengo idea sobre Android en particular, pero esto parece ser el manejo habitual de espacios en blanco XML: el espacio en blanco inicial y final dentro de un elemento generalmente se considera insignificante y se elimina. Prueba xml:space :

<string name="Toast_Memory_GameWon_part1" xml:space="preserve">you found ALL PAIRS ! on </string> <string name="Toast_Memory_GameWon_part2" xml:space="preserve"> flips !</string>


Se puede hacer un argumento para agregar el espacio programáticamente. Como estos casos se usarán a menudo en concatenaciones, decidí detener la locura y simplemente hacer el + " " + antiguo + " " + . Esto tendría sentido en la mayoría de las lenguas europeas, me gustaría reunir.


Si necesita el espacio con el fin de concatenarlo posteriormente con otras cadenas, puede utilizar el enfoque de formato de cadena para agregar argumentos a su definición de cadena:

<string name="error_">Error: %s</string>

Luego formatea la cadena como:

String message = context.getString(R.string.error_, "Something went wrong")


Si realmente quieres hacerlo de la manera que lo estabas haciendo, creo que debes decirle que el espacio en blanco es relevante al escapar de él:

<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on/ </string> <string name="Toast_Memory_GameWon_part2">/ flips !</string>

Sin embargo, usaría el formato de cadena para esto. Algo como lo siguiente:

<string name="Toast_Memory_GameWon">you found ALL PAIRS ! on %d flips !</string>

entonces

String message_all_pairs_found = String.format(getString(R.string.Toast_Memory_GameWon), total_flips);


Solo uso el código UTF para el espacio "/ u0020" en el archivo strings.xml.

<string name="some_string">/u0020The name of my string./u0020/u0020</string>

Funciona genial. (Android ama los códigos UTF)


Todas las respuestas aquí no funcionaron para mí. En su lugar, para agregar un espacio al final de una cadena en XML hice esto

<string name="more_store">more store<b> </b> </string>


Trabajando bien estoy usando / u0020

<string name="hi"> Hi /u0020 </string> <string name="ten"> /u0020 out of 10 </string> <string name="youHaveScored">/u0020 you have Scored /u0020</string>

Archivo Java

String finalScore = getString(R.string.hi) +name+ getString(R.string.youHaveScored)+score+ getString(R.string.ten); Toast.makeText(getApplicationContext(),finalScore,Toast.LENGTH_LONG).show();

Captura de pantalla aquí Imagen de funcionamiento de este código


use "" con el valor del recurso de cadena.

Ejemplo: "valor con espacios"

O

usa / u0020 código para espacios.