分享两道Go语言字符串切片的练习题,附参考答案

2021/11/7 23:10:22

本文主要是介绍分享两道Go语言字符串切片的练习题,附参考答案,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

练习1

给定一个字符串列表,在原有slice基础上,返回不包含空字符串的slice。

如:{“aaa”, “bbb”, “ccc”, “”, “aa”, “”, “bb”, “”, “cc”}
返回:{“aaa”, “bbb”, “ccc”, “aa”, “bb”, “cc”}

参考答案

package main

import "fmt"

// 去除字符串切片中的空字符串
func strRemoveBlank(data []string) []string {
   var result []string
   for _, v := range data {
      if v != "" {
         result = append(result, v)
      }
   }
   return result
}

func main() {
   data := []string{"aaa", "bbb", "ccc", "", "aa", "", "bb", "", "cc"}
   fmt.Println(data)
   result := strRemoveBlank(data)
   fmt.Println(result)
   fmt.Println("==================")
   for k, v := range result {
      fmt.Println(k, v)
   }
}

输出结果

在这里插入图片描述

练习2

写一个函数,清除[]string中的重复字符串。

如:[“aa”,“bb”,“cc”,“aa”,“bb”,“cc”,“aa”,“bb”,“cc”]
结果:[“aa”,“bb”,“cc”]

参考答案

package main

import "fmt"

// 去除字符串切片中的重复字符串
func strRemoveRepeated(data []string) []string {
   var result []string
   for _, v := range data {
      if !strIsInSlice(v, result) {
         result = append(result, v)
      }
   }
   return result
}

// 判断字符串是否在字符串切片中
func strIsInSlice(str string, slice []string) bool {
   for _, v := range slice {
      if str == v {
         return true
      }
   }
   return false
}
func main() {
   data := []string{"aa", "bb", "cc", "aa", "bb", "cc", "aa", "bb", "cc"}
   fmt.Println(data)
   result := strRemoveRepeated(data)
   fmt.Println(result)
   fmt.Println("===============================")
   for k, v := range result {
      fmt.Println(k, v)
   }
}

输出结果

在这里插入图片描述



这篇关于分享两道Go语言字符串切片的练习题,附参考答案的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程