我想创建一个包含唯一字符串的数组。我怎样才能做到这一点?
var paths = make([]string, 0)
func main() {
// Members are added dynamically
paths = append(paths, "aaa")
paths = append(paths, "bbb")
paths = append(paths, "bbb")
paths = append(paths, "ccc")
// convert ["aaa", "bbb", "bbb", "ccc"] -> ["aaa", "bbb", "ccc"]
// or can I use some class that disallow the same string automaticaly?
}
如果要收集唯一元素,则为Set数据类型。Go没有集合数据类型,但是您可以使用map[string]bool
来充当集合。
对于“好的”集合,请使用具有bool
值类型(带有true
值)的映射并利用零值。对于内存占用最小的集合,请使用具有struct{}
值类型的映射,因为类型的值不struct{}
占用内存;并使用逗号分隔的习惯用法来判断值是否在集合/映射中。
这是set的“不错”版本的样子。代替切片,将元素添加到a map[string]bool
作为键,将a true
作为值:
m := make(map[string]bool)
m["aaa"] = true
m["bbb"] = true
m["bbb"] = true
m["ccc"] = true
要检查集合(地图)中是否已存在某个元素,您可以简单地使用一个索引表达式:
exists := m["somevalue"]
这将利用零值,也就是说,如果映射尚未包含元素,则返回值类型的零值(false
如果为bool
type,则返回零),正确指示该元素不在集合中。
地图中的元素没有固定的顺序。如果您需要保留顺序(例如插入顺序),请使用一个切片(记住该顺序)和一个映射(告诉要添加的元素是否是新元素)。这是最简单的帮助add()
函数:
var m = make(map[string]bool)
var a = []string{}
func main() {
add("aaa")
add("bbb")
add("bbb")
add("ccc")
}
func add(s string) {
if m[s] {
return // Already in the map
}
a = append(a, s)
m[s] = true
}
问题内容: java中有没有一种方法可以用指定数量的指定字符创建字符串?就我而言,我需要创建一个包含10个空格的字符串。我当前的代码是: 有没有更好的方法来完成同一件事。特别是我想快速(在执行方面)。 问题答案: for循环将由编译器优化。在像您这样的情况下,您无需自己担心优化。信任编译器。 顺便说一句,如果有一种方法可以创建一个包含n个空格字符的字符串,那么它的编码方式就和您刚才一样。
代码非常简单。它会检查所有字符一次,并替换第一次出现的字符。然而,输入=“aab”失败。我不知道为什么。编程语言是java。 编辑 我改了密码。现在它抛出了一个输入错误 错误: 线程“main”java中出现异常。util。正则表达式。PatternSyntaxException:索引1附近的未关闭组(^at java.util.regex.Pattern.error,Pattern.java:1
本文向大家介绍在 JavaScript 中包含唯一字符的筛选字符串,包括了在 JavaScript 中包含唯一字符的筛选字符串的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个 JavaScript 函数来接受一个字符串 str。我们的函数应该构造一个只包含输入字符串中唯一字符的新字符串,并删除出现的所有重复字符。 示例 以下是代码- 输出结果 以下是控制台输出-
使用字符串数组为对象创建avro模式的正确方法是什么? 我试图创建avro模式的对象,有字符串数组根据官方文档?但我得到错误。 https://avro.apache.org/docs/1.8.1/spec.html [错误]无法执行目标组织。阿帕奇。avro:avro maven插件:1.8.2:项目电子邮件上的模式(默认值):目标组织的执行默认值。阿帕奇。avro:avro maven插件:1
问题内容: 我如何提取字符串[]或arraylist中的所有元素,并以适当的格式(所有空格之间使用单个空格)组合所有单词并存储在数组中。 输出:Java很酷。 问题答案: 使用。 或使用Apache Commons Lang 。 或使用Java8的。
问题内容: 我正在尝试查看字符串是否至少包含数字或小写或大写。 我写了这样的东西: 但是我不明白为什么我不能使组合达到36。它们一直保持为0。我在做什么错? 问题答案: 您可以改用Pattern,我认为“ matches”方法会查找整个字符串以匹配正则表达式。 试试下面的代码: