如何区分 JAVA 中以减号开头的字符串(字符)?例如:"buy" 和“-buy”

How can I distinguish a String(of characters) leading a minus sign in JAVA? ex: "buy" and "-buy"

我在 JAVA 比较新。我正在实施一个涉及多图的想法。现在我想把 "buy" 和“-buy”作为键。我的问题是,如何区分原始字符串(字符)相同但它们有相反的前导符号???

我认为您可能误用了多图的概念。我从你的问题中收集到你想要查找一个键并让它具有两个键的 return 值(在它们之前有和没有'-')。 Multimaps 不支持多个键(据我所知在任何情况下)。它们支持每个键的多个值。

您有多种选择:

  1. 不要对密钥中的 'opposite' 语义进行编码。而是使用字符串和布尔字段创建一个新的 class 用于标记相反,并使用该 class 作为您的密钥。

    publicclass操作{ 字符串获取名称(); 布尔 isOpposite(); }

    地图>地图;

  2. 完全不要在数据结构中包含对立逻辑。而是解析使用的关键。换句话说,您需要 get "buy" 和“-buy”作为键,然后在您的代码中理清如何处理它们。

  3. 将你的 Map 设置为两个级别,第二个级别代表值是否相反:

    Map<String,Map<Boolean,List<Value>>> map;

    map.get("buy").get(true)...

我认为第一个选项绝对是最好的。与值关联的文本应该只是您的键的一个属性 - 如果您最终不得不添加其他属性,那么您最终将在键中编码一堆逻辑。

要为单个 创建一个具有多个值的映射,其中 key="buy"key="-buy",我建议使用 MultiValueMap 来自 Apache Commons Collection library. The Javadoc for the MultiValueMap is here