string.xml 파일에 "-"를 넣는 방법


81

strings.xml파일 내의 문자열에 "-"를 넣을 수 있어야 합니다.

내 문제는 내 문자열을 넣을 때 "1261eba2-9d8c-11e1-93e3-40409e0f44a1"일식이 소리를 지른다는 것입니다.

이 줄에 여러 주석이 있습니다.- "-"를 "엔 대시"문자 (–, &; # 8211;)로 바꿉니다.

이 문제를 어떻게 해결할 수 있습니까?


1
그 가치가 정확히 어디에 필요합니까? 태그, 태그 값 또는 속성 값입니까?
rekaszeru

2
"-"를 "\-"로
바꾸기

답변:


119

오류 메시지를 읽을 때, 당신의 대답은 교체해야한다는 것입니다 -함께 –. 그러면 잘 작동합니다 =)

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


4
사용자에게 문자열을 표시하려는 경우 괜찮습니다. 사용자는 비슷한 모양의 유니 코드 문자로 "속임수"를 쓰고 있다는 사실을 실제로 알 수 없습니다. 일반 대시를 사용하려면 다음 답변을 참조하십시오. stackoverflow.com/a/10895509/78234
Tal Weiss

2
나는 그 코드가 일반 하이픈이 아니라 endash를위한 것이라고 생각합니다.
John61590

Ya that 's an-dash not a hyphen thepunctuationguide.com/en-dash.html
Blundell

84

다른 대답은 사용자에게 문자열을 표시하려는 경우에 적합합니다. 사용자는 "진짜"대시와 유니 코드 속임수 사이의 차이점을 실제로 구분할 수 없습니다.
그러나 실제로 대시가 있어야하는 경우 (예 : 해당 문자열이 어딘가에서 암호로 사용되거나 API의 URL 키로 사용되기 때문에) 다음 형식을 사용할 수 있습니다.

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

경고가 제거되고 정규식을 사용하여 문자열을 읽을 수 있습니다.

getResources().getString(R.string.EVA_API_KEY);

3
이것이 최고의 대답입니다. 감사.
Guillermo Tobar 2012 년

10
한 가지 팁 : 실제 대시가 필요한 <string> 태그에만 tools : ignore = "TypographyDashes"부분을 넣을 수 있습니다.
Dan J

1
어떤 이유로 내가 사용하는 문자열에 무시를 넣을 때만 저에게 효과적이었습니다. 잘못된 대시라는 것을 알게 된 답변에 감사하지만 작동하는 방법은 간단하지 않았습니다.
Mathijs SEGERS

1
나는 911 전화 걸기를 시작하려고했는데 당신의 대답이 그 열쇠였습니다. 감사!
Roisgoen 2015 년

14

모든 특수 문자 앞에 백 슬래시 (\)를 사용하십시오 . 나처럼 \ & android.

이것을 이스케이프 문자라고합니다. (\)


모든 특수 문자 앞에 이스케이프 문자 "\"를 추가해야한다고 생각합니다.
drew212

en.wikipedia.org/wiki/Escape_character 이스케이프 문자는 백 슬래시입니다.- "\"는 슬래시가 아닙니다.- "/"
drew212

지금 내 대답을 확인하십시오. 백 슬래시 ()입니다.
RajaReddy PolamReddy

5
당신 모두가 "-"문자를 제거하는 것을 사용하고있을 때 메신저가 얻는 것은 : 1261eba29d8c11e193e340409e0f44a1 insted of 1261eba2-9d8c-11e1-93e3-40409e0f44a1 ...
roiberg

4

대시는 하이픈 또는 빼기 기호와 유사한 구두점 표시이지만 주로 길이와 기능면에서 두 기호와 다릅니다. 대시의 가장 일반적인 버전은 각각 서체의 소문자 n 및 대문자 M의 길이에 따라 명명 된 엔 대시 (-) 및 전각 대시 (-)입니다.

참고

그냥 교체 -키보드에 대시를 입력 할 때, XML이 전부가 마이너스로 대시를 읽기 때문에.



1

아마도 다음과 같습니다.

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

그러나 다음 중 하나가 필요합니다.

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

두 번째에서-는-로 대체됩니다. 시각적으로 차이를 구분하기는 어렵습니다.


1
그러나 조심하십시오 : URL에서 이러한 기호를 변경하면 작동이 중지 될 수 있습니다 (내가 그랬습니다).
Dan J

짧은 대시 기호 (n- 대시)를 이스케이프 시퀀스로 바꾸고 싶습니다. 그러나 &#8211;긴 대시 기호 (m- 대시)의 이스케이프 시퀀스처럼 보입니다.
toobsco42

0

Eclipse의 빠른 수정 바로 가기는 기본적으로 Ctrl+ 1이고 Android Studio에서는 기본적으로 Alt+ Enter입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.