Làm cách nào để in dấu ngoặc kép bên trong “”?


Câu trả lời:


221

Với một dấu gạch chéo ngược trước dấu ngoặc kép mà bạn muốn chèn vào Chuỗi:

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

Bây giờ sentencelà:

Họ nói "Không sao đâu", phải không?

Nó được gọi là "thoát" một ký tự: bạn đang sử dụng giá trị theo nghĩa đen của nó, nó sẽ không được diễn giải.


Với Swift 4, bạn có thể chọn sử dụng """dấu phân cách cho văn bản theo nghĩa đen mà không cần phải thoát:

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

Điều này mang lại:

Họ nói "Không sao đâu", phải không?
Vâng, "được" là những gì họ đã nói.


Với Swift 5, bạn có thể sử dụng dấu phân cách nâng cao:

Các ký tự chuỗi hiện có thể được thể hiện bằng cách sử dụng dấu phân cách nâng cao . Một chuỗi ký tự có một hoặc nhiều ký hiệu số (#) trước dấu ngoặc kép mở đầu coi các ký tự dấu gạch chéo ngược và ký tự dấu ngoặc kép là ký tự trừ khi chúng được theo sau bởi cùng một số ký hiệu số. Sử dụng dấu phân cách nâng cao để tránh các ký tự chuỗi lộn xộn chứa nhiều ký tự dấu ngoặc kép hoặc dấu gạch chéo ngược với các dấu gạch chéo.

Chuỗi của bạn bây giờ có thể được biểu diễn dưới dạng:

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

Và nếu bạn muốn thêm biến vào chuỗi của mình, bạn cũng nên thêm #sau dấu gạch chéo ngược:

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

23

Để hoàn thiện, từ tài liệu của Apple :

Chuỗi ký tự có thể bao gồm các ký tự đặc biệt sau:

  • Các ký tự đặc biệt thoát ra \ 0 (ký tự rỗng), \ (dấu gạch chéo ngược), \ t (tab ngang), \ n (nguồn cấp dữ liệu dòng), \ r (dấu xuống dòng), \ "(dấu nháy kép) và \ '(dấu nháy đơn)
  • Một đại lượng vô hướng Unicode tùy ý, được viết là \ u {n}, trong đó n là một số thập lục phân có 1-8 chữ số với giá trị bằng một điểm mã Unicode hợp lệ

có nghĩa là ngoài việc có thể thoát ký tự bằng dấu gạch chéo ngược, bạn có thể sử dụng giá trị unicode. Hai câu lệnh sau là tương đương:

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

myString bây giờ sẽ chứa:

Tôi thích dấu ngoặc kép "không cần thiết"


8

Theo nhu cầu của bạn, bạn có thể sử dụng một trong 4 mẫu sau để in Swift Stringcó chứa dấu ngoặc kép trong đó.


1. Sử dụng dấu ngoặc kép thoát

Chuỗi ký tự có thể bao gồm các ký tự đặc biệt như \":

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

2. Sử dụng vô hướng Unicode

Chuỗi ký tự có thể bao gồm giá trị vô hướng Unicode được viết dưới dạng \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. Sử dụng các ký tự chuỗi nhiều dòng (yêu cầu Swift 4)

Các Swift Lập trình Ngôn ngữ / Strings và nhân vật quốc gia:

Vì các ký tự chuỗi nhiều dòng sử dụng ba dấu ngoặc kép thay vì chỉ một, bạn có thể bao gồm dấu ngoặc kép ( ") bên trong ký tự chuỗi nhiều dòng mà không cần thoát khỏi nó.

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

4. Sử dụng các ký tự chuỗi thô (yêu cầu Swift 5)

Các Swift Lập trình Ngôn ngữ / Strings và nhân vật quốc gia:

Bạn có thể đặt một chuỗi ký tự trong các dấu phân cách mở rộng để bao gồm các ký tự đặc biệt trong một chuỗi mà không cần gọi hiệu ứng của chúng. Bạn đặt chuỗi của mình trong dấu ngoặc kép ( ") và bao quanh chuỗi đó bằng các dấu số ( #). Ví dụ: in chuỗi theo nghĩa đen sẽ #"Line 1\nLine 2"#in chuỗi thoát nguồn cấp dữ liệu dòng ( \n) thay vì in chuỗi trên hai dòng.

let string = #"A string with "double quotes" in it."#
print(string) //prints: A string with "double quotes" in it.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.