Cómo poner un "-" en un archivo string.xml

81

Necesito poder poner un "-" en la cadena dentro de mi strings.xmlarchivo.

Mi problema es que cuando estoy poniendo mi cadena, que es "1261eba2-9d8c-11e1-93e3-40409e0f44a1", eclipse grita:

Se han encontrado varias anotaciones en esta línea: - Reemplaza "-" con un carácter "en guión" (-, &; # 8211;)

¿Cómo puedo arreglar esto?

Roiberg
fuente
1
¿Dónde exactamente necesitas ese valor? ¿Es una etiqueta, un valor de etiqueta o un valor de atributo?
rekaszeru
2
reemplace "-" con "\ -"
carmen_munich

Respuestas:

119

Entonces, cuando lea el mensaje de error, su respuesta será que debe reemplazar -con –. Entonces debería funcionar bien =)

http://en.wikipedia.org/wiki/Dash

Phil
fuente
4
Esto está bien cuando solo desea mostrar la cadena al usuario. El usuario realmente no puede decir que está "haciendo trampa" con un carácter Unicode de aspecto similar. Si solo desea usar el tablero normal, vea esta respuesta: stackoverflow.com/a/10895509/78234
Tal Weiss
2
Creo que el código es para endash, no un guión normal.
John61590
Sí, eso es un guión, no un guión thepunctuationguide.com/en-dash.html
Blundell
84

Las otras respuestas están bien para cuando desee mostrar la cadena al usuario. El usuario realmente no puede diferenciar entre un guión "real" y el truco Unicode.
Pero, si realmente debe tener el guión (por ejemplo, porque esa cadena se usa como contraseña en algún lugar, o como una clave de URL para una API), entonces puede usar este formato:

<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
    <string name="EVA_API_KEY">3c42b725-5e20-41c8-982f-dee40be8a05b</string>
</resources>

La advertencia se eliminará y la cadena se podrá leer usando el estándar:

getResources().getString(R.string.EVA_API_KEY);
Tal Weiss
fuente
3
Esta es la mejor respuesta. Gracias.
Guillermo Tobar
10
Un consejo: es posible que desee poner la parte tools: ignore = "TypographyDashes" solo en esas etiquetas <string> que realmente necesitan el guión real.
Dan J
1
Por alguna razón, solo funcionó para mí cuando puse el ignorar en la cadena que estoy usando. Gracias por la respuesta, descubrí que era el guión equivocado, pero cómo hacerlo funcionar no fue tan sencillo.
Mathijs Segers
1
Estaba tratando de iniciar el marcador telefónico para el 9-1-1 y tu respuesta fue la clave para eso. ¡Gracias!
Roisgoen
14

Utilice una barra diagonal inversa (\) delante de cada carácter especial. como yo \ y android.

Esto se llama carácter de escape. (\)

RajaReddy PolamReddy
fuente
Creo que te refieres a agregar el carácter de escape: "\" antes de cada carácter especial.
drew212
en.wikipedia.org/wiki/Escape_character El carácter de escape es una barra invertida - "\" no una barra inclinada - "/"
drew212
revisa mi respuesta ahora. esto es barra invertida ().
RajaReddy PolamReddy
5
cuando estoy usando lo que todos están sacando es quitar el carácter "-" ... lo que obtengo es: 1261eba29d8c11e193e340409e0f44a1 insted de 1261eba2-9d8c-11e1-93e3-40409e0f44a1 ...
roiberg
4

El guión es un signo de puntuación similar a un guión o un signo menos, pero difiere de ambos símbolos principalmente en longitud y función. Las versiones más comunes del guión son el guión (-) y el guión em (-), que se denominan así por la longitud de la n minúscula y la M mayúscula de un tipo de letra, respectivamente.

Referencia

Simplemente reemplácelo -con porque cuando escribe un guión en el teclado, XML lee guión como menos, eso es todo.

Amr Ashraf
fuente
1

Probablemente tengas esto:

<string name="test1">1261eba2-9d8c-11e1-93e3-40409e0f44a1</string>

Pero necesitas cualquiera de estos:

<string name="test2">1261eba2&#8211;9d8c&#8211;11e1&#8211;93e3&#8211;40409e0f44a1</string>
<string name="test3">1261eba2–9d8c–11e1–93e3–40409e0f44a1</string>

En el segundo, el - se reemplaza por un -. Es difícil notar la diferencia visualmente.

Maz
fuente
1
Sin embargo, tenga cuidado: si cambia estos símbolos en una URL, podría dejar de funcionar (el mío lo hizo).
Dan J
Quiero reemplazar un símbolo de guión corto (n-guión) con una secuencia de escape. Pero &#8211;parece que es la secuencia de escape para el símbolo de guión largo (m-guión).
toobsco42
0

El atajo de solución rápida en Eclipse es Ctrl+ 1de forma predeterminada y en Android Studio es Alt+ Enterde forma predeterminada.

Hasan El-Hefnawy
fuente