zoukankan      html  css  js  c++  java
  • 幽灵蛛(pholcus)(三)--strings学习资料

    strings包按理说应该是一个独立的教程,但目前我主要还是爬虫在用它,就放到这里吧!

    转载请注明出处:http://www.cnblogs.com/SSSR/p/6347431.html

    strings包是golang的标准库:

    以下收集一些链接:

    http://studygolang.com/articles/2881 这个链接里的一些写法不错,如:var p=fmt.Println

    http://studygolang.com/articles/4588

    http://studygolang.com/articles/5769 有很多的中文注释 非常好!

    http://studygolang.com/articles/5584

    http://studygolang.com/articles/3436 此链接比较全,但是原网址看不清楚;代码一会附到下面。

    这里来先穿插以下 我是怎么写golang的。golang语言的入口只有main一个,所以我们建的项目只能有一个有main文件。但是我们在学习的时候不能把所有的代码都写到main文件中,这样子会很乱,也不利于我们以后查找。

    所以我是新建一个文件夹,利用golang的测试文件来写我要学习的东西,通过_test.go文件运行。这样子可以很好的组织我们的代码,后续在查找时也很方便,开发项目调用也方便。

    以字符串的为例:

    stringlearning.go文件内容:

    package stringslearning
     
    import (
        "fmt"
        "strings"
        //"unicode/utf8"
    )
     
    func Stringlearn() {
        fmt.Println("查找子串是否在指定的字符串中")
        fmt.Println(" Contains 函数的用法")
        fmt.Println(strings.Contains("seafood", "foo")) //true
        fmt.Println(strings.Contains("seafood", "bar")) //false
        fmt.Println(strings.Contains("seafood", ""))    //true
        fmt.Println(strings.Contains("", ""))           //true 这里要特别注意
        fmt.Println(strings.Contains("我是中国人", "我"))     //true
     
        fmt.Println("")
        fmt.Println(" ContainsAny 函数的用法")
        fmt.Println(strings.ContainsAny("team", "i"))        // false
        fmt.Println(strings.ContainsAny("failure", "u & i")) // true
        fmt.Println(strings.ContainsAny("foo", ""))          // false
        fmt.Println(strings.ContainsAny("", ""))             // false
     
        fmt.Println("")
        fmt.Println(" ContainsRune 函数的用法")
        fmt.Println(strings.ContainsRune("我是中国", '我')) // true 注意第二个参数,用的是字符
     
        fmt.Println("")
        fmt.Println(" Count 函数的用法")
        fmt.Println(strings.Count("cheese", "e")) // 3
        fmt.Println(strings.Count("five", ""))    // before & after each rune result: 5 , 源码中有实现
     
        fmt.Println("")
        fmt.Println(" EqualFold 函数的用法")
        fmt.Println(strings.EqualFold("Go", "go")) //大小写忽略
     
        fmt.Println("")
        fmt.Println(" Fields 函数的用法")
        fmt.Println("Fields are: %q", strings.Fields("  foo bar  baz   ")) //["foo" "bar" "baz"] 返回一个列表
     
        //相当于用函数做为参数,支持匿名函数
        for _, record := range []string{" aaa*1892*122", "aaa	aa	", "124|939|22"} {
            fmt.Println(strings.FieldsFunc(record, func(ch rune) bool {
                switch {
                case ch > '5':
                    return true
                }
                return false
            }))
        }
     
        fmt.Println("")
        fmt.Println(" HasPrefix 函数的用法")
        fmt.Println(strings.HasPrefix("NLT_abc", "NLT")) //前缀是以NLT开头的
     
        fmt.Println("")
        fmt.Println(" HasSuffix 函数的用法")
        fmt.Println(strings.HasSuffix("NLT_abc", "abc")) //后缀是以NLT开头的
     
        fmt.Println("")
        fmt.Println(" Index 函数的用法")
        fmt.Println(strings.Index("NLT_abc", "abc")) // 返回第一个匹配字符的位置,这里是4
        fmt.Println(strings.Index("NLT_abc", "aaa")) // 在存在返回 -1
        fmt.Println(strings.Index("我是中国人", "中"))     // 在存在返回 6
     
        fmt.Println("")
        fmt.Println(" IndexAny 函数的用法")
        fmt.Println(strings.IndexAny("我是中国人", "中")) // 在存在返回 6
        fmt.Println(strings.IndexAny("我是中国人", "和")) // 在存在返回 -1
     
        fmt.Println("")
        fmt.Println(" Index 函数的用法")
        fmt.Println(strings.IndexRune("NLT_abc", 'b')) // 返回第一个匹配字符的位置,这里是4
        fmt.Println(strings.IndexRune("NLT_abc", 's')) // 在存在返回 -1
        fmt.Println(strings.IndexRune("我是中国人", '中'))   // 在存在返回 6
     
        fmt.Println("")
        fmt.Println(" Join 函数的用法")
        s := []string{"foo", "bar", "baz"}
        fmt.Println(strings.Join(s, ", ")) // 返回字符串:foo, bar, baz
     
        fmt.Println("")
        fmt.Println(" LastIndex 函数的用法")
        fmt.Println(strings.LastIndex("go gopher", "go")) // 3
     
        fmt.Println("")
        fmt.Println(" LastIndexAny 函数的用法")
        fmt.Println(strings.LastIndexAny("go gopher", "go")) // 4
        fmt.Println(strings.LastIndexAny("我是中国人", "中"))      // 6
     
        fmt.Println("")
        fmt.Println(" Map 函数的用法")
        rot13 := func(r rune) rune {
            switch {
            case r >= 'A' && r <= 'Z':
                return 'A' + (r-'A'+13)%26
            case r >= 'a' && r <= 'z':
                return 'a' + (r-'a'+13)%26
            }
            return r
        }
        fmt.Println(strings.Map(rot13, "'Twas brillig and the slithy gopher..."))
     
        fmt.Println("")
        fmt.Println(" Repeat 函数的用法")
        fmt.Println("ba" + strings.Repeat("na", 2)) //banana
     
        fmt.Println("")
        fmt.Println(" Replace 函数的用法")
        fmt.Println(strings.Replace("oink oink oink", "k", "ky", 2))
        fmt.Println(strings.Replace("oink oink oink", "oink", "moo", -1))
     
        fmt.Println("")
        fmt.Println(" Split 函数的用法")
        fmt.Printf("%q
    ", strings.Split("a,b,c", ","))
        fmt.Printf("%q
    ", strings.Split("a man a plan a canal panama", "a "))
        fmt.Printf("%q
    ", strings.Split(" xyz ", ""))
        fmt.Printf("%q
    ", strings.Split("", "Bernardo O'Higgins"))
     
        fmt.Println("")
        fmt.Println(" SplitAfter 函数的用法")
        fmt.Printf("%q
    ", strings.SplitAfter("/home/m_ta/src", "/")) //["/" "home/" "m_ta/" "src"]
     
        fmt.Println("")
        fmt.Println(" SplitAfterN 函数的用法")
        fmt.Printf("%q
    ", strings.SplitAfterN("/home/m_ta/src", "/", 2))  //["/" "home/m_ta/src"]
        fmt.Printf("%q
    ", strings.SplitAfterN("#home#m_ta#src", "#", -1)) //["/" "home/" "m_ta/" "src"]
     
        fmt.Println("")
        fmt.Println(" SplitN 函数的用法")
        fmt.Printf("%q
    ", strings.SplitN("/home/m_ta/src", "/", 1))
     
        fmt.Printf("%q
    ", strings.SplitN("/home/m_ta/src", "/", 2))  //["/" "home/" "m_ta/" "src"]
        fmt.Printf("%q
    ", strings.SplitN("/home/m_ta/src", "/", -1)) //["" "home" "m_ta" "src"]
        fmt.Printf("%q
    ", strings.SplitN("home,m_ta,src", ",", 2))   //["/" "home/" "m_ta/" "src"]
     
        fmt.Printf("%q
    ", strings.SplitN("#home#m_ta#src", "#", -1)) //["/" "home/" "m_ta/" "src"]
     
        fmt.Println("")
        fmt.Println(" Title 函数的用法") //这个函数,还真不知道有什么用
        fmt.Println(strings.Title("her royal highness"))
     
        fmt.Println("")
        fmt.Println(" ToLower 函数的用法")
        fmt.Println(strings.ToLower("Gopher")) //gopher
     
        fmt.Println("")
        fmt.Println(" ToLowerSpecial 函数的用法")
     
        fmt.Println("")
        fmt.Println(" ToTitle 函数的用法")
        fmt.Println(strings.ToTitle("loud noises"))
        fmt.Println(strings.ToTitle("loud 中国"))
     
        fmt.Println("")
        fmt.Println(" Replace 函数的用法")
        fmt.Println(strings.Replace("ABAACEDF", "A", "a", 2)) // aBaACEDF
        //第四个参数小于0,表示所有的都替换, 可以看下golang的文档
        fmt.Println(strings.Replace("ABAACEDF", "A", "a", -1)) // aBaaCEDF
     
        fmt.Println("")
        fmt.Println(" ToUpper 函数的用法")
        fmt.Println(strings.ToUpper("Gopher")) //GOPHER
     
        fmt.Println("")
        fmt.Println(" Trim  函数的用法")
        fmt.Printf("[%q]", strings.Trim(" !!! Achtung !!! ", "! ")) // ["Achtung"]
     
        fmt.Println("")
        fmt.Println(" TrimLeft 函数的用法")
        fmt.Printf("[%q]", strings.TrimLeft(" !!! Achtung !!! ", "! ")) // ["Achtung !!! "]
     
        fmt.Println("")
        fmt.Println(" TrimSpace 函数的用法")
        fmt.Println(strings.TrimSpace(" 	
     a lone gopher 
    	
    ")) // a lone gopher
     
    }
    

      stringslearning_test.go文件如下:

    package stringslearning
    import (
    	"fmt"
    	//"github.com/PuerkitoBio/goquery"
    	"testing"
    )
    func TestGolang(t *testing.T) {
    	Stringlearn()
    	fmt.Println("Hello World!这是测试")
    }
    

      在stringslearning_test.go文件下点击TEST运行即可:

  • 相关阅读:
    win10 uwp 弹起键盘不隐藏界面元素
    win10 uwp 存放网络图片到本地
    win10 uwp 存放网络图片到本地
    sublime Text 正则替换
    sublime Text 正则替换
    win10 uwp 绘图 Line 控件使用
    win10 uwp 绘图 Line 控件使用
    AJAX 是什么?
    什么是 PHP SimpleXML?
    PHP XML DOM:DOM 是什么?
  • 原文地址:https://www.cnblogs.com/SSSR/p/6347431.html
Copyright © 2011-2022 走看看