Programing

공백의 끝 및 / 또는 시작 부분에 공백을 유지하는 방법은 무엇입니까?

lottogame 2020. 3. 5. 22:46
반응형

공백의 끝 및 / 또는 시작 부분에 공백을 유지하는 방법은 무엇입니까?


리소스 / 값 파일에서이 두 문자열을 연결해야합니다.

<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();

그러나 첫 번째 줄의 끝과 두 번째 줄의 시작 부분의 공백이 사라졌습니다 (토스트가 표시 될 때) ...

어떻게해야합니까?

대답은이 문서 링크의 어딘가에 있다고 생각합니다.

아니면 &amp ;"&"문자를 사용하는 것과 같은 것 입니까 ??


문자열 형식을 사용하더라도 문자열의 시작 또는 끝에 공백이 필요한 경우가 있습니다. 이 경우으로 탈출 \하거나 xml:space속성이 도움이 되지 않습니다 . &#160;공백에는 HTML 엔터티 사용해야합니다 .

&#160;깨지지 않는 공백에 사용하십시오 . 일반 공간에
사용하십시오 &#032;.


나는 같은 문제에 부딪쳤다. 화면상의 필드 이름을 나타내는 리소스 문자열 끝에 공백을 남기고 싶었습니다.

이 문제 보고서에서 해결책을 찾았습니다 : 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">|&#x20;|&#x2009;|&#x200A;||</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);

참고 URL : https://stackoverflow.com/questions/1587056/how-to-keep-the-spaces-at-the-end-and-or-at-the-beginning-of-a-string



반응형