xref: /aosp_15_r20/external/kotlinpoet/docs/s-for-strings.md (revision 3c321d951dd070fb96f8ba59e952ffc3131379a0)
1*3c321d95SSadaf Ebrahimi%S for Strings
2*3c321d95SSadaf Ebrahimi==============
3*3c321d95SSadaf Ebrahimi
4*3c321d95SSadaf EbrahimiWhen emitting code that includes string literals, we can use **`%S`** to emit a **string**, complete
5*3c321d95SSadaf Ebrahimiwith wrapping quotation marks and escaping. Here's a program that emits 3 methods, each of which
6*3c321d95SSadaf Ebrahimireturns its own name:
7*3c321d95SSadaf Ebrahimi
8*3c321d95SSadaf Ebrahimi```kotlin
9*3c321d95SSadaf Ebrahimifun main(args: Array<String>) {
10*3c321d95SSadaf Ebrahimi  val helloWorld = TypeSpec.classBuilder("HelloWorld")
11*3c321d95SSadaf Ebrahimi    .addFunction(whatsMyNameYo("slimShady"))
12*3c321d95SSadaf Ebrahimi    .addFunction(whatsMyNameYo("eminem"))
13*3c321d95SSadaf Ebrahimi    .addFunction(whatsMyNameYo("marshallMathers"))
14*3c321d95SSadaf Ebrahimi    .build()
15*3c321d95SSadaf Ebrahimi
16*3c321d95SSadaf Ebrahimi  val kotlinFile = FileSpec.builder("com.example.helloworld", "HelloWorld")
17*3c321d95SSadaf Ebrahimi    .addType(helloWorld)
18*3c321d95SSadaf Ebrahimi    .build()
19*3c321d95SSadaf Ebrahimi
20*3c321d95SSadaf Ebrahimi  kotlinFile.writeTo(System.out)
21*3c321d95SSadaf Ebrahimi}
22*3c321d95SSadaf Ebrahimi
23*3c321d95SSadaf Ebrahimiprivate fun whatsMyNameYo(name: String): FunSpec {
24*3c321d95SSadaf Ebrahimi  return FunSpec.builder(name)
25*3c321d95SSadaf Ebrahimi    .returns(String::class)
26*3c321d95SSadaf Ebrahimi    .addStatement("return %S", name)
27*3c321d95SSadaf Ebrahimi    .build()
28*3c321d95SSadaf Ebrahimi}
29*3c321d95SSadaf Ebrahimi```
30*3c321d95SSadaf Ebrahimi
31*3c321d95SSadaf EbrahimiIn this case, using `%S` gives us quotation marks:
32*3c321d95SSadaf Ebrahimi
33*3c321d95SSadaf Ebrahimi```kotlin
34*3c321d95SSadaf Ebrahimiclass HelloWorld {
35*3c321d95SSadaf Ebrahimi  fun slimShady(): String = "slimShady"
36*3c321d95SSadaf Ebrahimi
37*3c321d95SSadaf Ebrahimi  fun eminem(): String = "eminem"
38*3c321d95SSadaf Ebrahimi
39*3c321d95SSadaf Ebrahimi  fun marshallMathers(): String = "marshallMathers"
40*3c321d95SSadaf Ebrahimi}
41*3c321d95SSadaf Ebrahimi```
42