ฉันจะแปลงสตริงเป็นการแทนตัวพิมพ์เล็กได้อย่างไร


94

ฉันจะแปลงสตริงเป็นการแทนตัวพิมพ์เล็กได้อย่างไร

ฉันรู้สึกว่ามันต้องมีฟังก์ชั่นในตัว แต่หาไม่เจอ

ฉันพบToLowerอิน"unicode/letter"แล้ว แต่ใช้ได้ครั้งละหนึ่งรูนเท่านั้น

คำตอบ:


128

ใช่มีการตรวจสอบแพคเกจสตริง

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.ToLower("Gopher"))
}

ขอบคุณมากที่ฉันพลาดแพ็คเกจสตริงโดยสิ้นเชิง :) และ googling ไม่ได้ทำอะไรเลย
oers

3
แม้ว่าคำตอบจะถูกต้อง แต่ลิงก์มักจะพินาศและควรเพิ่มตัวอย่างโค้ดที่แสดงวิธีแก้ปัญหา
59

47

หากคุณขี้เกียจเกินไปที่จะคลิกผ่านแพ็คเกจสตริงนี่คือโค้ดตัวอย่าง:

strings.ToLower("Hello, WoRLd") // => "hello, world"

หากคุณต้องการจัดการUnicode Special Caseเช่น Azeri หรือ Turkish คุณสามารถใช้ToLowerSpecial:

strings.ToLowerSpecial(unicode.TurkishCase, "Hello, WoRLd") // => "hello, world"

ใครช่วยอธิบายแนวคิดของกรณีพิเศษได้ไหม ตัวอย่างเช่นฉันต้องการเปรียบเทียบอินพุตของผู้ใช้ซึ่งเป็นสตริง Unicode กับชุดสตริง Unicode ที่เก็บไว้และค้นหารายการที่ตรงกันหลังจากลดขนาดทั้งสองชุดลง คุณจะต้องใช้ดอกไม้พิเศษ () หรือไม่?
Luke W

น่าเสียดายที่ฉันไม่แน่ใจ คุณสามารถลองถามคำถามแยกต่างหากเกี่ยวกับเรื่องนั้นและเชื่อมโยงที่นี่?
Ryan Endacott

"... สำหรับภาษาตุรกีตัวอักษรบางตัวจัดการไม่ถูกต้องตัวพิมพ์ใหญ่" İ "ควรตรงกับตัวพิมพ์เล็ก" i "ตัวพิมพ์ใหญ่" I "ควรตรงกับตัวพิมพ์เล็ก" ı "และตัวพิมพ์เล็ก" i "ควรตรงกับตัวพิมพ์ใหญ่" İ ".. . "จากstackoverflow.com/q/50135094/3166697
Dima Kozhevin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.