如何从字符串中删除最后 4 个字符?

我想从字符串中删除最后 4 个字符,所以“test.txt”变成了“test”。


package main


import (

    "fmt"

    "strings"

)


func main() {

    file := "test.txt"

    fmt.Print(strings.TrimSuffix(file, "."))

}


料青山看我应如是
浏览 205回答 3
3回答

梦里花落0921

这将安全地删除任何点扩展 - 如果没有找到扩展将是容忍的:func removeExtension(fpath string) string {        ext := filepath.Ext(fpath)        return strings.TrimSuffix(fpath, ext)}游乐场示例。表测试:/www/main.js                             -> '/www/main'/tmp/test.txt                            -> '/tmp/test'/tmp/test2.text                          -> '/tmp/test2'/tmp/test3.verylongext                   -> '/tmp/test3'/user/bob.smith/has.many.dots.exe        -> '/user/bob.smith/has.many.dots'/tmp/zeroext.                            -> '/tmp/zeroext'/tmp/noext                               -> '/tmp/noext'                                         -> ''

哈士奇WWW

虽然已经有一个公认的答案,但我想分享一些字符串操作的切片技巧。从字符串中删除最后 n 个字符正如标题所说,remove the last 4 characters from a string,这是非常常见的用法slices,即,file := "test.txt"fmt.Println(file[:len(file)-4]) // you can replace 4 with any n输出:test游乐场示例。删除文件扩展名:从您的问题描述来看,您似乎正试图.txt从字符串中删除文件扩展名后缀(即 )。为此,我更喜欢上面@colminator 的回答,即file := "test.txt"fmt.Println(strings.TrimSuffix(file, filepath.Ext(file)))

偶然的你

您可以使用它来删除最后一个“。”之后的所有内容。去游乐场package mainimport (    "fmt"    "strings")func main() {    sampleInput := []string{    "/www/main.js",    "/tmp/test.txt",    "/tmp/test2.text",    "/tmp/test3.verylongext",    "/user/bob.smith/has.many.dots.exe",    "/tmp/zeroext.",    "/tmp/noext",    "",    "tldr",    }    for _, str := range sampleInput {        fmt.Println(removeExtn(str))    }}func removeExtn(input string) string {    if len(input) > 0 {        if i := strings.LastIndex(input, "."); i > 0 {            input = input[:i]        }    }    return input}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go