前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang之字符串操作(反转中英文字符串)

Golang之字符串操作(反转中英文字符串)

作者头像
超蛋lhy
发布2018-08-31 15:55:29
6150
发布2018-08-31 15:55:29
举报
文章被收录于专栏:PythonistaPythonista
代码语言:javascript
复制
//字符串反转
package main

import "fmt"

func reverse(str string) string {
    var result string
    strLen := len(str)
    for i := 0; i < strLen; i++ {
        result = result + fmt.Sprintf("%c", str[strLen-i-1])
    }
    return result
}
func reverse1(str string) string {
    var result []byte
    tmp := []byte(str)
    length := len(str)
    for i := 0; i < length; i++ {
        result = append(result, tmp[length-i-1])
    }
    return string(result)
}
func main() {
    var str1 = "hello"
    str2 := "world"
    str3 := fmt.Sprintf("%s %s", str1, str2)
    n := len(str3)
    fmt.Println(str3)
    fmt.Printf("len(str3)=%d\n", n)
    substr := str3[0:5]
    fmt.Println(substr)
    substr = str3[6:]
    fmt.Println(substr)
    result := reverse(str3)
    fmt.Println(result)
    result = reverse1(result)
    fmt.Println(result)

}

 字符串练习

代码语言:javascript
复制
package main

import (
    "fmt"
)

func testString() {
    var str = "hello"
    fmt.Printf("str[0]=%c len(str)=%d\n", str[0], len(str))

    for index, val := range str {
        fmt.Printf("str[%d]=%c\n", index, val)
    }

    //str[0] = '0'
    //fmt.Println("after modify:", str)
    var byteSlice []byte
    byteSlice = []byte(str)
    byteSlice[0] = '0'
    str = string(byteSlice)

    fmt.Println("after modify:", str)

    fmt.Printf("len(str)=%d\n", len(str))

    str = "hello, 少林之巅"
    fmt.Printf("len(str)=%d\n", len(str))

    str = "中问123"
    fmt.Printf("last:len(str)=%d\n", len(str))

    var b rune = '中'
    fmt.Printf("b=%c\n", b)

    var runeSlice []rune
    runeSlice = []rune(str)
    fmt.Printf("str 长度:%d, len(str)=%d\n", len(runeSlice), len(str))
}

func testReverseStringV1() {
    var str = "hello中文 "
    var bytes []byte = []byte(str)

    for i := 0; i < len(str)/2; i++ {
        tmp := bytes[len(str)-i-1]
        bytes[len(str)-i-1] = bytes[i]
        bytes[i] = tmp
    }

    str = string(bytes)
    fmt.Println(str)
}

func testReverseStringV2() {
    var str = "hello中文 "
    var r []rune = []rune(str)

    for i := 0; i < len(r)/2; i++ {
        tmp := r[len(r)-i-1]
        r[len(r)-i-1] = r[i]
        r[i] = tmp
    }

    str = string(r)
    fmt.Println(str)
}

func testHuiWen() {
    var str = "上海自来水来自海上"
    var r []rune = []rune(str)

    for i := 0; i < len(r)/2; i++ {
        tmp := r[len(r)-i-1]
        r[len(r)-i-1] = r[i]
        r[i] = tmp
    }

    str2 := string(r)
    if str2 == str {
        fmt.Println(str, " is huiwen")
    } else {
        fmt.Println(str, " is not huiwen")
    }
}

func main() {
    //testString()
    //testReverseStringV2()
    testHuiWen()
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档