In kết quả với println() trong Kotlin
🎯 Mục tiêu: Học cách hiển thị thông tin ra màn hình console và sử dụng String Templates - tính năng đặc trưng của Kotlin.
💡 Khái niệm
Trong lập trình, việc đầu tiên bạn học là hiển thị thông tin ra màn hình. Kotlin cung cấp hai hàm chính:
println()- In và xuống dòng (print line)print()- In nhưng không xuống dòng
fun main() {
println("Xin chào Kotlin!")
println("Đây là dòng thứ hai")
}Kết quả:
Xin chào Kotlin!
Đây là dòng thứ hai📝 Cú pháp cơ bản
println() vs print()
fun main() {
// println() - tự động xuống dòng
println("Dòng 1")
println("Dòng 2")
// print() - không xuống dòng
print("A")
print("B")
print("C")
}Kết quả:
Dòng 1
Dòng 2
ABCIn số và các kiểu dữ liệu khác
fun main() {
println(42) // Số nguyên
println(3.14) // Số thực
println(true) // Boolean
println('K') // Ký tự
}🔍 String Templates - Điểm mạnh của Kotlin
String Template là cách chèn giá trị biến vào chuỗi một cách elegant. Đây là tính năng được yêu thích nhất của Kotlin!
Cú pháp: $tênBiến
fun main() {
val name = "Bumbii"
val age = 5
println("Xin chào, tôi là $name")
println("Tôi $age tuổi")
}Kết quả:
Xin chào, tôi là Bumbii
Tôi 5 tuổiBiểu thức phức tạp: ${biểu_thức}
Khi cần tính toán hoặc gọi method, dùng ${}:
fun main() {
val a = 10
val b = 5
println("$a + $b = ${a + b}")
println("$a × $b = ${a * b}")
val name = "kotlin"
println("Chữ hoa: ${name.uppercase()}")
}Kết quả:
10 + 5 = 15
10 × 5 = 50
Chữ hoa: KOTLIN[!TIP] Quy tắc đơn giản:
$variable- khi chỉ cần giá trị biến${expression}- khi cần tính toán hoặc gọi method
🎨 Ký tự đặc biệt (Escape Characters)
fun main() {
println("Dòng 1\nDòng 2") // \n = xuống dòng
println("Cột 1\tCột 2") // \t = tab
println("Anh ấy nói: \"Hi!\"") // \" = dấu ngoặc kép
println("Đường dẫn: C:\\Users") // \\ = dấu backslash
println("Giá: 100\$") // \$ = ký tự $ (không phải template)
}📋 Raw Strings (Chuỗi nhiều dòng)
Kotlin hỗ trợ triple-quoted strings """...""" cho văn bản nhiều dòng:
fun main() {
val poem = """
Roses are red,
Violets are blue,
Kotlin is awesome,
And so are you!
""".trimIndent()
println(poem)
}Kết quả:
Roses are red,
Violets are blue,
Kotlin is awesome,
And so are you![!NOTE]
.trimIndent()loại bỏ khoảng trắng thừa ở đầu mỗi dòng, giữ code đẹp mà output vẫn chuẩn.
🔢 Định dạng số
Làm tròn số thực
fun main() {
val pi = 3.14159265359
println("%.2f".format(pi)) // 3.14 (2 chữ số thập phân)
println("%.4f".format(pi)) // 3.1416 (4 chữ số thập phân)
}Định dạng số với dấu phân cách hàng nghìn
fun main() {
val price = 15000000
println("Giá: %,d VNĐ".format(price)) // Giá: 15,000,000 VNĐ
}🛠️ Thực hành
Bài tập 1: Tạo chương trình in ra thông tin cá nhân của bạn
fun main() {
val name = "Tên bạn"
val birthYear = 2000
val currentYear = 2026
println("=== THÔNG TIN CÁ NHÂN ===")
println("Họ tên: $name")
println("Năm sinh: $birthYear")
println("Tuổi: ${currentYear - birthYear}")
}Bài tập 2: In hóa đơn mua hàng
fun main() {
val product = "Laptop"
val price = 25000000
val quantity = 2
val total = price * quantity
println("""
╔════════════════════════════╗
║ HÓA ĐƠN MUA HÀNG ║
╠════════════════════════════╣
║ Sản phẩm: $product
║ Đơn giá: ${"%,d".format(price)} VNĐ
║ Số lượng: $quantity
╠════════════════════════════╣
║ TỔNG: ${"%,d".format(total)} VNĐ
╚════════════════════════════╝
""".trimIndent())
}📱 Trong Android
Trong Android development, bạn sẽ dùng Log thay vì println:
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val userName = "Bumbii"
Log.d("MyApp", "User logged in: $userName")
}
}| Mục đích | Console App | Android |
|---|---|---|
| Debug | println() | Log.d() |
| Info | println() | Log.i() |
| Error | println() | Log.e() |
⚠️ Lưu ý quan trọng
[!WARNING] Khác với Java: Kotlin không có
System.out.println(). Chỉ cần dùngprintln()trực tiếp.
[!CAUTION] Cẩn thận với
$: Nếu muốn in ký tự$literal, dùng\$hoặc${'$'}:println("Giá: \$100") // Giá: $100 println("Giá: ${'$'}100") // Giá: $100
✅ Checklist - Tự kiểm tra
Sau bài học này, bạn có thể:
- Sử dụng
println()vàprint()đúng cách - Hiểu sự khác biệt giữa
$variablevà${expression} - Sử dụng ký tự escape:
\n,\t,\",\\ - Tạo chuỗi nhiều dòng với
"""..."""và.trimIndent() - Định dạng số với
"%.2f".format()và"%,d".format()
Tiếp theo: Ghi chú và KDoc