จะพิมพ์เครื่องหมายคำพูดคู่ภายใน“” ได้อย่างไร?


100

ใครช่วยบอกหน่อยได้ไหมว่าฉันจะพิมพ์ข้อความต่อไปนี้ "ด้วย" เครื่องหมายคำพูดคู่

"คำคมคู่"



ดูคำตอบของฉันที่แสดงถึง 4 วิธีในการพิมพ์Stringอินสแตนซ์ที่มีเครื่องหมายคำพูดคู่
Imanou Petit

คำตอบ:


232

ด้วยแบ็กสแลชก่อนเครื่องหมายคำพูดคู่ที่คุณต้องการแทรกในสตริง:

let sentence = "They said \"It's okay\", didn't they?"

ตอนนี้sentenceคือ:

พวกเขาบอกว่า "ไม่เป็นไร" ใช่ไหม

เรียกว่าอักขระ "Escape": คุณกำลังใช้ค่าตามตัวอักษรซึ่งจะไม่ถูกตีความ


ด้วย Swift 4 คุณสามารถเลือกใช้"""ตัวคั่นสำหรับข้อความตามตัวอักษรได้โดยที่ไม่จำเป็นต้องหนี:

let sentence = """
They said "It's okay", didn't they?
Yes, "okay" is what they said.
"""

สิ่งนี้ให้:

พวกเขาบอกว่า "ไม่เป็นไร" ใช่ไหม
ใช่ "โอเค" คือสิ่งที่พวกเขากล่าว


ด้วย Swift 5 คุณสามารถใช้ตัวคั่นขั้นสูง:

ตอนนี้ตัวอักษรสตริงสามารถแสดงโดยใช้ตัวคั่นขั้นสูง สตริงลิเทอรัลที่มีเครื่องหมายตัวเลขอย่างน้อยหนึ่งตัว (#) ก่อนเครื่องหมายคำพูดเปิดจะถือว่าแบ็กสแลชและเครื่องหมายอัญประกาศคู่เป็นตัวอักษรเว้นแต่จะตามด้วยเครื่องหมายตัวเลขจำนวนเท่ากัน ใช้ตัวคั่นที่ปรับปรุงแล้วเพื่อหลีกเลี่ยงความยุ่งเหยิงของตัวอักษรสตริงที่มีเครื่องหมายอัญประกาศคู่หรือเครื่องหมายแบ็กสแลชจำนวนมากที่มีค่า Escape พิเศษ

ตอนนี้สตริงของคุณสามารถแสดงเป็น:

let sentence = #"They said "It's okay", didn't they?"#

และถ้าคุณต้องการเพิ่มตัวแปรให้กับสตริงของคุณคุณควรเพิ่ม#หลังจากแบ็กสแลช:

let sentence = #"My "homepage" is \#(url)"#

24

เพื่อความสมบูรณ์จากเอกสารของ Apple :

ตัวอักษรสตริงสามารถรวมอักขระพิเศษต่อไปนี้:

  • อักขระพิเศษที่ใช้ Escape \ 0 (อักขระว่าง), \ (แบ็กสแลช), \ t (แท็บแนวนอน), \ n (ฟีดบรรทัด), \ r (การส่งคืนค่าขนส่ง), \ "(เครื่องหมายคำพูดคู่) และ \ '(เครื่องหมายคำพูดเดี่ยว)
  • สเกลาร์ Unicode ตามอำเภอใจเขียนเป็น \ u {n} โดยที่ n คือเลขฐานสิบหก 1–8 หลักที่มีค่าเท่ากับจุดรหัส Unicode ที่ถูกต้อง

ซึ่งหมายความว่านอกเหนือจากความสามารถในการหลีกเลี่ยงอักขระด้วยแบ็กสแลชแล้วคุณยังสามารถใช้ค่ายูนิโคดได้ คำสั่งสองข้อต่อไปนี้เทียบเท่า:

let myString = "I love \"unnecessary\" quotation marks"
let myString = "I love \u{22}unnecessary\u{22} quotation marks"

myString ตอนนี้จะประกอบด้วย:

ฉันชอบเครื่องหมายคำพูดที่ "ไม่จำเป็น"


10

ตามความต้องการของคุณคุณสามารถใช้หนึ่งใน4 รูปแบบต่อไปนี้เพื่อพิมพ์ Swift Stringที่มีเครื่องหมายคำพูดคู่อยู่ในนั้น


1. ใช้เครื่องหมายคำพูดคู่ที่ใช้ Escape

ตัวอักษรสตริงสามารถรวมอักขระพิเศษเช่น\":

let string = "A string with \"double quotes\" in it."
print(string) //prints: A string with "double quotes" in it.

2. การใช้ Unicode สเกลาร์

ตัวอักษรสตริงสามารถรวมค่าสเกลาร์ Unicode ที่เขียนเป็น\u{n}:

let string = "A string with \u{22}double quotes\u{22} in it."
print(string) //prints: A string with "double quotes" in it.

3. การใช้ตัวอักษรสตริงหลายบรรทัด (ต้องใช้ Swift 4)

สถานะภาษา / สตริงและอักขระการเขียนโปรแกรม Swift :

เนื่องจากลิเทอรัลสตริงแบบหลายบรรทัดใช้เครื่องหมายอัญประกาศคู่สามอันแทนที่จะใช้เพียงอันเดียวคุณสามารถใส่เครื่องหมายอัญประกาศคู่ ( ") ไว้ในลิเทอรัลสตริงแบบหลายบรรทัดได้โดยไม่ต้องหลบหนี

let string = """
A string with "double quotes" in it.
"""
print(string) //prints: A string with "double quotes" in it.

4. การใช้ตัวอักษรสตริงดิบ (ต้องใช้ Swift 5)

สถานะภาษา / สตริงและอักขระการเขียนโปรแกรม Swift :

คุณสามารถวางสตริงลิเทอรัลภายในตัวคั่นแบบขยายเพื่อรวมอักขระพิเศษในสตริงโดยไม่ต้องใช้เอฟเฟกต์ คุณวางสตริงของคุณไว้ในเครื่องหมายคำพูด ( ") และล้อมรอบด้วยเครื่องหมายตัวเลข ( #) ตัวอย่างเช่นการพิมพ์สตริงลิเทอรัลจะ#"Line 1\nLine 2"#พิมพ์ลำดับการหลีกเลี่ยงฟีดบรรทัด ( \n) แทนที่จะพิมพ์สตริงข้ามสองบรรทัด

let string = #"A string with "double quotes" in it."#
print(string) //prints: A string with "double quotes" in it.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.