วิธีใส่อักขระช่องว่างเป็นชื่อสตริงใน XML ได้อย่างไร


174

ฉันได้กำหนดสตริงบางอย่างในstrings.xmlไฟล์ ตอนนี้ฉันต้องใส่ช่องว่างพิเศษระหว่างตัวเลขบางตัวในสตริง เมื่อฉันพิมพ์อักขระเว้นวรรคพิเศษสิ่งนี้จะไม่ปรากฏในแอปพลิเคชัน

ก่อน:

<string name="spelatonertext3">-4, 5, -5, 6, -6,

และถ้าฉันเพิ่มพื้นที่พิเศษเช่นนี้:

<string name="spelatonertext3">-4,  5, -5,   6,  -6,

มันมีลักษณะเหมือนกันในแอป ฉันจะสร้างอักขระช่องว่างในสตริง XML ได้อย่างไร


หน้ามันเหมือนกันในหน้านี้ด้วย ... :) สิ่งที่ฉันต้องการช่องว่างระหว่างตัวเลขนั่นเป็นไปได้ยังไง .. ?
Andreas

ใช้การจัดรูปแบบรหัสเพื่อรักษาช่องว่าง (& <>เนื้อหา) บน SO :)
Andrew Thompson

คำตอบ:


405

&#160;จะใช้พื้นที่สีขาวในการใช้ XML สตริง XML จะไม่ใช้พื้นที่สีขาวเหมือนที่เป็นอยู่ มันจะตัดพื้นที่สีขาวก่อนการตั้งค่า ดังนั้นใช้&#160;แทนพื้นที่สีขาวเดียว


1
สิ่งนี้ใช้ไม่ได้กับ wrap_content ของ textview เมื่อพื้นที่ว่างเกิดขึ้นที่ส่วนท้ายของข้อความ มุมมองข้อความไม่ได้รักษาความกว้างที่ถูกใช้โดยอักขระ 'ช่องว่าง'
toobsco42

28
นี่จะเป็นการเพิ่มพื้นที่ไม่แตกหัก มันแตกต่างจากพื้นที่ปกติและจะทำงานได้ไม่ดีกับฟังก์ชั่นบางอย่าง ( normalize-spaceตัวอย่างเช่นXPath ) ลองใช้&#032;(พื้นที่ปกติ) &#160;แทน @ toobsco42
shwartz

ฉันต้องใช้&#160;แทนที่จะ\u0020วางที่ไม่แตกหลังจากรหัสพื้นที่ในหมายเลขโทรศัพท์ มิฉะนั้นหมายเลขโทรศัพท์จะถูกพันไว้ที่ท้ายบรรทัดหลังเครื่องหมายวงเล็บของรหัสพื้นที่
mharper

& # 032; ก็โอเคถ้าคุณต้องการ 1 ช่องว่าง หากคุณใส่หลาย ๆ อัน (& # 032; & # 032; ... ) มันจะถูกตัดเป็น 1 ฉันคิดว่ามันเป็นพฤติกรรมเช่นเดียวกับพื้นที่ว่างปกติดังนั้นจึงดูเหมือนไร้ประโยชน์ หากพบข้อเสนอแนะเกี่ยวกับ & # 009; (ควรเป็นอักขระแท็บ): ไม่แสดงอะไรเลย & # 160; ทำงานได้ดีมันเป็นสิ่งที่ฉันต้องการขอบคุณρяσѕρєя K.
herve-guerin

57

แทรก \ u0020 โดยตรงใน XML สำหรับช่องว่างที่คุณต้องการเก็บไว้

<string name="spelatonertext3">-4, \u00205, \u0020\u0020-5, \u00206, \u0020-6,</string>

24

Android ไม่สนับสนุนการเว้นช่องว่างท้ายสตริงในไฟล์ String.xml ดังนั้นหากคุณต้องการช่องว่างหลังสตริงคุณต้องใช้ยูนิโค้ดนี้ระหว่างคำ

\ u0020

มันเป็นอักขระช่องว่าง Unicode


สิ่งนี้ใช้ได้กับฉันโดยใช้ Android Studio 3.6.2 ที่คอมไพล์เป็น Android 4.4 ขอบคุณ
ความรักและความสงบสุข - Joe Codeswell

11

ตามที่ได้กล่าวไปแล้ววิธีที่ถูกต้องในการมีช่องว่างในไฟล์ XML คือการใช้\u0020ซึ่งเป็นอักขระยูนิโค้ดสำหรับช่องว่าง

ตัวอย่าง:

<string name="spelatonertext3">-4,\u00205,\u0020-5,\u00206,\u0020-6</string>

ข้อเสนอแนะอื่น ๆ ได้กล่าวว่าจะใช้&#160;หรือ&#032;แต่มีข้อเสียสองนี้ ข้อเสียแรกคือสิ่งเหล่านี้เป็นอักขระ ASCII ดังนั้นคุณจึงต้องพึ่งพา TextView เพื่อแยกวิเคราะห์ ข้อเสียที่สองคือ&#160;บางครั้งอาจทำให้การตัดคำแปลก ๆ ใน TextViews


7

ตัวแปรอวกาศ:

<string name="space_demo">|&#x20;|&#x2009;|&#x200A;|</string>

| พื้นที่ | บางพื้นที่ แฮร์สเปซ


1
นี่คือหนึ่งที่หอมหวานและยอดเยี่ยม
Abdul Waheed

6

สิ่งนี้น่าจะใช้ได้เช่นกัน ใช้เครื่องหมายคำพูดเพื่อรักษาพื้นที่

<string name="spelatonertext3">"-4,  5, -5,   6,  -6,"</string>

1
นี่คือคำตอบที่สะอาดที่สุด (ง่ายที่สุดในการอ่าน) ในความคิดของฉัน น่าเสียดายที่คนส่วนใหญ่ไม่ได้ทำให้รายการคำตอบนี้ไกลเกินกว่าที่จะทำต่อไป
DavidR

5

ใส่&#160;ในไฟล์ string.xml เพื่อระบุช่องว่างเดียวในโครงการ android


5

คุณสามารถใช้ดังต่อไปนี้เช่นกัน

<string name="spelatonertext3"> "-4,  5, -5,   6,  -6, "> </string>

ใส่ทุกอย่างใน" "ช่องว่างและควรใช้งานได้


1
ใส่อะไรลงใน "" (ใบเสนอราคา) พร้อมช่องว่างและควรใช้งานได้: นี่ไม่ทำงาน
Krunal Shah

3

ตามคำถามของคุณหากคุณต้องการเพิ่มช่องว่างมากกว่าหนึ่งในทรัพยากรสตริงพวกเขามีตัวเลือกมากมายในการเพิ่มช่องว่างระหว่างตัวละครหรือคำ:

1. โดยค่าเริ่มต้นหนึ่งช่องว่างคุณสามารถเพิ่มโดยตรงในไฟล์ทรัพยากรสตริงมันทำงานได้ดี แต่ถ้าให้มากกว่าหนึ่งช่องว่างในไฟล์ทรัพยากรของสตริงมันจะยกเว้นช่องว่างนั้น เช่น . -4, 5, -5, 6, -6,

  1. หากคุณต้องการเพิ่มช่องว่างเพิ่มเติมภายในไฟล์ทรัพยากรสตริงให้ใช้: - i เพิ่ม Unicode หลังจากตัวละครที่ชอบ

        <string name="test">-4,&#160;&#160;5,&#160;&#160;-5,&#160;&#160;6,&#160;&#160;-6,</string>

ii.you สามารถใช้ "\ u0020"

<string name="test">-4,\u0020\u0020 5,\u0020\u00205 -5,\u0020\u00205 6,\u0020\u00205 -6,</string>

3

หากคุณพยายามให้ช่องว่างระหว่าง 2 สตริงหรือในไฟล์ String ของ android ให้ทำเช่นนี้ในไฟล์สตริงของคุณ ใช้สิ่งนี้ก่อน "ชื่อสตริง" ของคุณที่คุณต้องการแสดง \ u0020 \ u0020 สำหรับเช่น \ u0020 \ u0020 \ u0020 \ u0020 \ u0020 \ u0020Payment


2

XML: พื้นที่ = "รักษา"

ทำงานเหมือนจับใจ

แก้ไข: ผิด อันที่จริงมันจะทำงานเฉพาะเมื่อเนื้อหาประกอบด้วยพื้นที่สีขาวเท่านั้น

ลิงค์


1

หากการส่งออกเป็น HTML แล้วใน HTML หลายช่องว่างแสดงเป็นช่องว่างเดียว เพื่อป้องกันสิ่งนี้ให้ใช้ช่องว่างที่ไม่ทำลาย (xA0) แทนช่องว่างทั่วไป


1

วิธีเดียวที่ฉันสามารถรับหลายช่องว่างกลางสตริง

<string name="some_string">Before" &#x20; &#x20; &#x20;"After</string>

Before   After

0

คุณต้องการที่จะแสดงเช่น "-4, 5, -5, 6, -6," (สองช่องว่าง) คุณสามารถเพิ่มรหัสต่อไปนี้เพื่อ string.xml

<string name="spelatonertext3"> "-4,&#160;&#160;5,&#160;-5,&#160;&#160;6,&#160;&#160;-6,"</string>

  แสดงหนึ่งช่องว่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.