//字符串反转
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. 滑动平均线的notebook画法

    滑动平均线,本程序解决了如何在matplotlib中使用中文显示,环境python2.7 最好使用 anaconda 环境使用sns似使得图片更加美观,不多说,上代码 import tushare a ...

  2. Hibernate对象的三种状态,瞬时态、持久态、游离态

    1.瞬时态.(new完一个对象,突然断电,内存中没有此对象) hibernate中什么时候的对象为瞬时态呢,当我们new 一个对象时,还没有save时,它就是瞬时态的,当我们delete一个对象时,它 ...

  3. spring-security-4 (1)介绍

    一.什么是spring security? spring security是基于spring开发的为JavaEE企业级应用提供安全服务的框架.安全服务主要是指 认证(Authentication)和  ...

  4. 【liunx】nslookup命令

    “nslookup”域名解析是什么? 假设我们要开个网站,首先我们要去提供域名申请的机构申请域名,然后绑定一个IP地址, 域名比较容易记忆,不像IP地址都是数字,申请完域名,绑定域名,DNS就写入域名 ...

  5. form表单传递对象数组

    ajax传递数组.form表单提交对象数组 在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用 form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致 ...

  6. posix对线程的调整

    fork 当多线程进程调用fork创建子进程时,从fork返回时,只有调用fork的线程在进程内存在(其他线程在子进程中不存在,好比调用pthread_exit退出,不再拥有私有数据destructo ...

  7. eclipse 和 Myeclipse中Maven Web项目出现小红叉的 详细解决方法

    在我们创建maven项目是常会出现小红叉,如图: 解决办法: 1.可以 点击鼠标右键  maven--->update project.一般可以解决. 2.查看 window---->sh ...

  8. VS工具相关内容

    1.VS自带的Visual Studio中的<C# 语言规范>安装路径:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Sp ...

  9. bzoj4466 超立方体

    Description 超立方体是立方体在高维空间内的拓展(其在 2 维情况下退化为正方形,1维情况下退化成线段).在理论计算机科学领域里,超立方体往往可以和 2 进制编码联系到一起.对理论计算机科学 ...

  10. 将各种格式的数据转换成XML

    public class DataToXml    {               /// <summary>        /// 将DataTable对象转换成XML字符串       ...