공백의 끝 및 / 또는 시작 부분에 공백을 유지하는 방법은 무엇입니까?
리소스 / 값 파일에서이 두 문자열을 연결해야합니다.
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2"> flips !</string>
나는 이렇게한다 :
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();
그러나 첫 번째 줄의 끝과 두 번째 줄의 시작 부분의 공백이 사라졌습니다 (토스트가 표시 될 때) ...
어떻게해야합니까?
대답은이 문서 링크의 어딘가에 있다고 생각합니다.
아니면 & ;
"&"문자를 사용하는 것과 같은 것 입니까 ??
문자열 형식을 사용하더라도 문자열의 시작 또는 끝에 공백이 필요한 경우가 있습니다. 이 경우으로 탈출 \
하거나 xml:space
속성이 도움이 되지 않습니다 .  
공백에는 HTML 엔터티 를 사용해야합니다 .
 
깨지지 않는 공백에 사용하십시오 . 일반 공간에
사용하십시오  
.
나는 같은 문제에 부딪쳤다. 화면상의 필드 이름을 나타내는 리소스 문자열 끝에 공백을 남기고 싶었습니다.
이 문제 보고서에서 해결책을 찾았습니다 : https://github.com/iBotPeaches/Apktool/issues/124
이것은 Duessi가 제안한 것과 같은 생각입니다. \u0020
보존하려는 빈 칸에 XML에 직접 삽입하십시오 .
예 :
<string name="your_id">Score :\u0020</string>
교체는 빌드시에 완료되므로 게임 성능에 영향을 미치지 않습니다.
이 문서 는 인용이 효과가 있다고 제안합니다.
<string name="my_str_spaces">" Before and after? "</string>
strings.xml 파일에서 "\ u0020"공간에 UTF 코드를 사용합니다.
<string name="some_string">\u0020The name of my string.\u0020\u0020</string>
잘 작동합니다. (Android는 UTF 코드를 좋아합니다)
이 질문은 오래되었지만 지금 가장 쉬운 방법은 따옴표를 추가하는 것입니다. 예를 들면 다음과 같습니다.
<string name="Toast_Memory_GameWon_part1">"you found ALL PAIRS ! on "</string>
<string name="Toast_Memory_GameWon_part2">" flips !"</string>
너비가 다른 공간을 확보 할 수 있습니다.
<string name="space_demo">| | | ||</string>
| 스페이스 | 얇은 공간 | 헤어 스페이스 | 공간이 없다 |
심상:
정말로 당신이하고있는 방식으로하고 싶다면 공백을 탈출하여 관련이 있다고 말해야한다고 생각합니다.
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on\ </string>
<string name="Toast_Memory_GameWon_part2">\ flips !</string>
그러나 이것을 위해 문자열 형식 을 사용 합니다 . 다음과 같은 것 :
<string name="Toast_Memory_GameWon">you found ALL PAIRS ! on %d flips !</string>
그때
String message_all_pairs_found = String.format(getString(R.string.Toast_Memory_GameWon), total_flips);
문자열 리소스 값과 함께 ""를 사용하십시오.
예 : "공백이있는 값"
또는
공백에는 \ u0020 코드를 사용하십시오.
잘 작동합니다 \ u0020
<string name="hi"> Hi \u0020 </string>
<string name="ten"> \u0020 out of 10 </string>
<string name="youHaveScored">\u0020 you have Scored \u0020</string>
자바 파일
String finalScore = getString(R.string.hi) +name+ getString(R.string.youHaveScored)+score+ getString(R.string.ten);
Toast.makeText(getApplicationContext(),finalScore,Toast.LENGTH_LONG).show();
이 스크린 샷 을 보여주는 이미지
여기에있는 모든 대답은 나를 위해 작동하지 않았습니다. 대신, 문자열 끝에 공백을 추가하려면 XML
이 작업을 수행하십시오.
<string name="more_store">more store<b> </b> </string>
프로그래밍 방식으로 공간을 추가하기 위해 인수를 만들 수 있습니다. 이러한 경우는 종종 연결에 사용되기 때문에 광기를 멈추고 오래된 것을하기로 결정했습니다 + " " +
. 이것들은 대부분의 유럽 언어 에서 의미가 있습니다.
나는 안드로이드에 대해 전혀 모른다. 그러나 이것은 일반적인 XML 공백 처리처럼 보인다. 일반적으로 요소 내에서 앞뒤 공백은 중요하지 않으며 제거된다. 시도 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>
이것은 실제로 질문에 대답하지 않을 수도 있지만 (XML에서 공백을 유지하는 방법) 근본적인 문제를보다 우아하게 해결할 수 있습니다.
XML 리소스에만 의존하는 대신 형식 문자열을 사용하여 연결하십시오. 먼저 공백을 제거하십시오.
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on</string>
<string name="Toast_Memory_GameWon_part2">flips !</string>
그런 다음 문자열을 다르게 만듭니다.
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();
를 사용하는 솔루션도 있습니다 CDATA
. 예:
<string name="test"><![CDATA[Hello world]]></string>
그러나 일반적으로 \u0020
충분 하다고 생각 합니다.
나중에 다른 문자열과 연결하기 위해 공간이 필요한 경우 문자열 정의에 인수를 추가하는 문자열 형식 접근법을 사용할 수 있습니다.
<string name="error_">Error: %s</string>
그런 다음 문자열 형식을 지정하십시오 (예 : 서버에서 오류가 반환 된 경우 그렇지 않은 경우 getString(R.string.string_resource_example)
).
String message = context.getString(R.string.error_, "Server error message here")
결과 :
Error: Server error message here
xml : space = "preserve"에서는 작동하지 않습니다
그래서 나는 그것을 가장 빠른 방법으로했습니다 =>
필요한 곳에 + ""+를 추가했습니다 ...
String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+" "+total_flips+" "+getString(R.string.Toast_Memory_GameWon_part2);
'Programing' 카테고리의 다른 글
range ()와 역순으로 목록을 인쇄 하시겠습니까? (0) | 2020.03.05 |
---|---|
SQL에서 "0으로 나누기"오류를 피하는 방법은 무엇입니까? (0) | 2020.03.05 |
jQuery $ .ajax (), Firefox에서 REQUEST_METHOD로“OPTIONS”를 보내는 $ .post (0) | 2020.03.05 |
Chrome에서 '일반 재로드', '하드 재로드'및 '빈 캐시 및 하드 재로드'의 차이점은 무엇입니까? (0) | 2020.03.05 |
퍼블릭 필드와 자동 속성 (0) | 2020.03.05 |