//字符串反转
package main import "fmt" func reverse(str string) string {
var result string
strLen := len(str)
for i := ; i < strLen; i++ {
result = result + fmt.Sprintf("%c", str[strLen-i-])
}
return result
}
func reverse1(str string) string {
var result []byte
tmp := []byte(str)
length := len(str)
for i := ; i < length; i++ {
result = append(result, tmp[length-i-])
}
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[:]
fmt.Println(substr)
substr = str3[:]
fmt.Println(substr)
result := reverse(str3)
fmt.Println(result)
result = reverse1(result)
fmt.Println(result) }

字符串练习

package main

import (
"fmt"
) func testString() {
var str = "hello"
fmt.Printf("str[0]=%c len(str)=%d\n", str[], 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[] = ''
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 := ; i < len(str)/; i++ {
tmp := bytes[len(str)-i-]
bytes[len(str)-i-] = bytes[i]
bytes[i] = tmp
} str = string(bytes)
fmt.Println(str)
} func testReverseStringV2() {
var str = "hello中文 "
var r []rune = []rune(str) for i := ; i < len(r)/; i++ {
tmp := r[len(r)-i-]
r[len(r)-i-] = r[i]
r[i] = tmp
} str = string(r)
fmt.Println(str)
} func testHuiWen() {
var str = "上海自来水来自海上"
var r []rune = []rune(str) for i := ; i < len(r)/; i++ {
tmp := r[len(r)-i-]
r[len(r)-i-] = 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()
}

Golang之字符串操作(反转中英文字符串)的更多相关文章

  1. C#入门篇6-8:字符串操作 深入研究字符串的内存驻留机制

    //字符串的内存驻留机制 public static void Test() { //当有多个字符串变量包含了同样的字符串实际值时, //CLR可能不会为它们重复地分配内存,而是让它们统统指向同一个字 ...

  2. add-binary 字符串操作,二进制字符串相加

    Given two binary strings, return their sum (also a binary string). For example,a ="11"b =& ...

  3. C#入门篇6-4:字符串操作 string分割字符串效率比较

    //分割字符串效率比较 public static void Fund() { //1.用string.Split方法 //a.字节数组: //625毫秒/百万次 string str1 = &quo ...

  4. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  5. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...

  6. SQL字符串操作汇总

    SQL字符串操作汇总 --将字符串中从某个字符开始截取一段字符,然后将另外一个字符串插入此处 select stuff('hello,world!',4,4,'****')   --返回值hel*** ...

  7. Python之字符串操作

    一.字符串特点 内容不可修改 password=' #内容不可修改 二.字符串常用方法 1..strip()方法 去字符串两边的空格和换行符 print(password.strip()) #去掉字符 ...

  8. JS 常用字符串操作

    Js字符串操作函数大全 /*******************************************                        字符串函数扩充              ...

  9. Python中字符串操作

    #Python字符串操作 '''1.复制字符串''' #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' pri ...

随机推荐

  1. 使用 Windows 10 中的加速度计(Accelerometer,重力传感器)

    在做 UWP 应用开发的时候还有什么理由可以用到加速度计呢?场景很多啦,比如做游戏,做类似 Surface Hub 那种一边旋转,一边所有内容跟着一起转的效果. Windows 10 UWP 中的加速 ...

  2. C#多线程应用:子线程更新主窗体控件的值(二)

    在上篇文章中,我已经给大家列了一个在主线程中实现的方式,这篇文章来给大家说说使用Invoke的方式的例子: 对于不代理不太熟悉的朋友,建议先查查相关资料: 例子一: 在C#中,直接在子线程中对窗体上的 ...

  3. 使用jquery触发a标签跳转

    错误示例 <a href="http://www.baidu.com" target="_blank">baidu</a> // 直接是 ...

  4. linux-一篇文章完成lnmp环境的编译安装

    lnmp环境搭建 前置条件 操作系统安装:CentOS 6.8 64位最小化安装. 配置好IP.DNS.网关.主机名 配置防火墙,开启80.3306端口 关闭访问墙 service iptables ...

  5. 【解决Jira】Chrome提示Java插件因过期而遭到阻止(JIRA上传截屏截图)

    最近经常被这个问题所困扰:用Chrome访问JIRA上传截屏截图时,地址栏下面弹出通知,提示JAVA插件已过期.但是由于公司要求统一开发环境和设置,不能更新到最新版,就像这样: 结果网页上的Java就 ...

  6. RK3288 红外遥控器增加自定义按键

    转载请注明出处:https://www.cnblogs.com/lialong1st/p/10071557.html CPU:RK3288 系统:Android 5.1 1.在 dts 中增加红外遥控 ...

  7. 解决php收邮件乱码问题

    function test($strHead){ if(ereg("=\?.{0,}\?[Bb]\?",$strHead)){ $arrHead=split("=\?.{ ...

  8. UI“三重天”之selenium--封装(二)

    基础示例代码: /** * @author Richered **/ package com.sample; import org.openqa.selenium.By; import org.ope ...

  9. C++快速输出一个整数的二进制表示(不用写函数)

    如果要输出int型的整数x,代码为: cout << bitset<>(x) << endl; 如果要输出long long型的整数x,代码为: cout < ...

  10. WebAPI认证与授权

    Web APi之认证(Authentication)及授权(Authorization)[一](十二) http://www.cnblogs.com/CreateMyself/p/4856133.ht ...