So fügen Sie ein "-" in die Datei "string.xml" ein

81

Ich muss in der Lage sein, ein "-" in die Zeichenfolge in meiner strings.xmlDatei einzufügen.

Mein Problem ist, dass "1261eba2-9d8c-11e1-93e3-40409e0f44a1"Eclipse schreit , wenn ich meinen String lege:

In dieser Zeile wurden mehrere Anmerkungen gefunden: - Ersetzen Sie "-" durch ein "en dash" -Zeichen (-, &; # 8211;)

Wie kann ich das beheben?

Roiberg
quelle
1
Wo genau brauchst du diesen Wert? Ist es ein Tag, ein Tag-Wert oder ein Attributwert?
Rekaszeru
2
Ersetzen Sie "-" durch "\ -"
carmen_munich

Antworten:

119

Also, wenn Sie die Fehlermeldung zu lesen, werden Sie Ihre Antwort sein , dass Sie ersetzen müssen -mit –. Dann sollte es gut funktionieren =)

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

Phil
quelle
4
Dies ist in Ordnung, wenn Sie dem Benutzer nur die Zeichenfolge anzeigen möchten. Der Benutzer kann nicht wirklich sagen, dass Sie mit einem ähnlich aussehenden Unicode-Zeichen "betrügen". Wenn Sie nur den regulären Bindestrich verwenden möchten, lesen
Tal Weiss
2
Ich denke, dass Code für Endash ist, kein regulärer Bindestrich.
John61590
Ja
Blundell
84

Die anderen Antworten sind in Ordnung, wenn Sie dem Benutzer die Zeichenfolge anzeigen möchten. Der Benutzer kann den Unterschied zwischen einem "echten" Strich und dem Unicode-Trick nicht wirklich erkennen.
Wenn Sie jedoch wirklich den Bindestrich haben müssen (z. B. weil diese Zeichenfolge irgendwo als Kennwort oder als URL-Schlüssel für eine API verwendet wird), können Sie einfach dieses Format verwenden:

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

Die Warnung wird entfernt und die Zeichenfolge kann mit dem regulären Code gelesen werden:

getResources().getString(R.string.EVA_API_KEY);
Tal Weiss
quelle
3
Das ist die beste Antwort. Vielen Dank.
Guillermo Tobar
10
Ein Tipp: Vielleicht möchten Sie den Teil tools: ignore = "TypographyDashes" nur in die <string> -Tags einfügen, die wirklich den richtigen Strich benötigen.
Dan J
1
Aus irgendeinem Grund hat es bei mir nur funktioniert, wenn ich die Zeichenfolge, die ich verwende, ignoriert habe. Vielen Dank für die Antwort. Ich fand heraus, dass es der falsche Strich war, aber wie man es zum Laufen bringt, war nicht so einfach.
Mathijs Segers
1
Ich habe versucht, den Telefonwähler für 9-1-1 zu starten, und Ihre Antwort war der Schlüssel dafür. Vielen Dank!
Roisgoen
14

Verwenden Sie einen Schrägstrich (\) vor jedem Sonderzeichen. wie ich \ & android.

Dies nennt man Escape-Charakter. (\)

RajaReddy PolamReddy
quelle
Ich denke, Sie meinen, fügen Sie vor jedem Sonderzeichen das Escape-Zeichen "\" hinzu.
zog212
en.wikipedia.org/wiki/Escape_character Escape-Zeichen ist Backslash - "\" nicht vorwärts Schrägstrich - "/"
draw212
Überprüfen Sie jetzt meine Antwort. Dies ist Back Slash ().
RajaReddy PolamReddy
5
wenn im mit , was Sie alle sind Saing seiner Entfernung des "-" char ... was im immer ist: 1261eba29d8c11e193e340409e0f44a1 insted 1261eba2-9d8c-11e1-93e3-40409e0f44a1 ...
roiberg
4

Der Bindestrich ist ein Interpunktionszeichen, das einem Bindestrich oder Minuszeichen ähnelt, sich jedoch von diesen beiden Symbolen hauptsächlich in Länge und Funktion unterscheidet. Die gebräuchlichsten Versionen des Bindestrichs sind der Bindestrich en - (-) und der Bindestrich em - (-), benannt nach der Länge der Kleinbuchstaben n und M in Großbuchstaben.

Referenz

Ersetzen Sie einfach -mit , denn wenn man einen Strich auf der Tastatur eingeben, XML liest Strich als minus, das ist alles.

Amr Ashraf
quelle
1

Sie haben wahrscheinlich Folgendes:

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

Aber Sie brauchen eines davon:

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

Im zweiten wird das - durch ein - ersetzt. Es ist schwer, den Unterschied visuell zu erkennen.

Maz
quelle
1
Seien Sie jedoch vorsichtig: Wenn Sie diese Symbole in einer URL ändern, funktioniert sie möglicherweise nicht mehr (meine).
Dan J
Ich möchte ein kurzes Strichsymbol (n-Strich) durch eine maskierte Sequenz ersetzen. Aber es &#8211;sieht so aus, als wäre es die Escape-Sequenz für das lange Strichsymbol (m-Strich).
toobsco42
0

Die Schnellkorrekturverknüpfung in Eclipse ist standardmäßig Ctrl+ 1und in Android Studio standardmäßig Alt+ Enter.

Hasan El-Hefnawy
quelle