zoukankan      html  css  js  c++  java
  • Go语言学习笔记四--基本数据类型与string类型常用方法

    一、基本数据类型之整数浮点数

    package main
    
    import "fmt"
    
    func main() {
        var a = 10
        var b int16 = 20
        fmt.Println(a, b)
        b = int16(a)
        fmt.Println(b)
    
        c := 3.14
        fmt.Println(c)
        var d float32 = 12.6
        fmt.Println(d)
        fmt.Println(c + float64(d))
    }

    二、string字符串类型的使用

      1 package main
      2 
      3 import (
      4     "fmt"
      5     "strings"
      6 )
      7 
      8 func main() {
      9     var s1 = "hello"
     10     fmt.Println(s1)
     11 
     12     s2 := " world"
     13     fmt.Println(s2)
     14 
     15     var s3 = s1 + s2 //字符串拼接
     16     fmt.Println(s3)
     17 
     18     var s4 = "ABCD
    efgh"//遇到特殊字符特殊处理
     19     fmt.Println(s4)
     20 
     21     var s5 = `1234
    5678` //反引号会将括号内所有字符打印出来,包括任何特殊字符
     22     fmt.Println(s5)
     23 
     24     var l6 = len(s4)
     25     fmt.Println(l6)
     26 
     27     var s6 = fmt.Sprintf("%s--%s--%s",s1,s2,s3)//字符串格式化拼接方式
     28     println(s6)
     29 
     30     ipAddr := "192.168.0.119;39.105.45.77"
     31 
     32     ipArray := strings.Split(ipAddr,";")//字符串分割 以分号作为分割
     33 
     34     fmt.Printf("The first ip:%s
    ",ipArray[0])
     35     fmt.Printf("The second ip:%s
    ",ipArray[1])
     36 
     37     result := strings.Contains(ipAddr,"39.105.45.77")//查看是否包含子串
     38     fmt.Println(result)
     39 
     40     str := "http://baidua.com"
     41     if strings.HasPrefix(str,"http") {
     42         println("This is a http url")
     43     } else {
     44         println("This isn't http url")
     45     }
     46 
     47     if strings.HasSuffix(str,"baidu.com") {
     48         println("this is a baidu url")
     49     } else {
     50         println("this isn't baidu url")
     51     }
     52 
     53     index := strings.Index(str,"baidu")
     54     println(index)
     55 
     56     index = strings.LastIndex(str,"a")
     57     println(index)
     58 
     59     strIpArray := strings.Join(ipArray,"----")
     60     println(strIpArray)
     61 
     62     //字符串底层就是一个byte数组
     63     s7 := "ABCDEF"
     64     fmt.Printf("s7[0] = %c
    ",s7[0])
     65 
     66     //很明显这个range返回值是两个 前面表示数组的下标 后面表示当前下标的值
     67     for index, ch := range s7{
     68         fmt.Printf("s7[%d] = %c
    ",index, ch)
     69     }
     70     //如果就一个返回值的话那就是返回数组的下标
     71     for ch := range s7 {
     72         fmt.Println(ch)
     73     }
     74 
     75     //字符串是没办法通过下标进行修改的 因此我们要将字符串转成byte数组
     76     var byteSplit []byte
     77     byteSplit = []byte(s7)
     78     for i := 0; i < len(byteSplit); i++ {
     79         fmt.Printf("%c ", byteSplit[i])
     80     }
     81     println()
     82 
     83     //修改数组元素然后转成字符串即可完成修改字符串
     84     byteSplit[0] = 'M'
     85     s7 = string(byteSplit)
     86     println(s7)
     87 
     88     //由于字符串的底层原理是byte 所以在求字符串长度的时候,求出来的是byte的长度
     89     s8 := "小尾学长"
     90     fmt.Printf("s8 len = %d
    ", len(s8)) //长度是12 因为每个中文占三个字节
     91 
     92     //在go里面表示一个utf8的字符使用的是rune
     93     var c1 rune= '中'
     94     fmt.Printf("c1 = %c
    ",c1)
     95 
     96     var runeSplit []rune
     97     runeSplit = []rune(s8)
     98     fmt.Printf(" %c
     %c
     %c
     %c
    ",runeSplit[0],runeSplit[1],runeSplit[2],runeSplit[3] )
     99     fmt.Printf("runeSplit len is %d 
    ",len(runeSplit))//长度是4
    100     runeSplit[3] = '姐'
    101     s8 = string(runeSplit)
    102     println(s8)//变成小尾学姐啦...
    103 
    104 }
  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/xwxz/p/13297726.html
Copyright © 2011-2022 走看看