热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于Map替换得思路

我得问题如下:首先我已经得到一个数组这个数组其实就是一个字符串算式转换而来,但是值是中文如:客户员工数量+实施月份。。。。等现在我已经有一个Map集合在这个集合中key为上面得元素(如:
我得问题如下:首先我已经得到一个数组这个数组其实就是一个字符串算式转换而来,但是值是中文
如:客户员工数量+实施月份。。。。 等
现在我已经有一个Map集合 在这个集合中 key为上面得元素(如:客户员工数量) value就是该元素得值(如:100)
现在不知道怎么把这个数组转换成为一个可以解出来得式子并得出值
我个人得想法如下:首先循环让集合中元素和Map集合中的key进行比较  如果相同 则把集合中得元素替换为Map集合得Value。 如果碰到运算符我该怎么去判断呢?如果得出来了一个集合我把它再转换为String字符串再转换为double类型进行计算?
下面是我已经写好得代码 希望给出代码或者思路 谢谢!

Set keys = (Set) map.keySet();
Iterator iterator = (Iterator) keys.iterator();
String[] item1 = tcaas12.getItem1().split(",");//获得String数组
for (int j = 0; j < item1.length; j++) {
//解析  如果数组item1中得某个元素和给我得Map得Key相等  就把那个元素换成 Map得Value
if(item1[i].trim().equals(iterator.next().toString().trim())){
value = (Double) map.get(item1[i]);//得到对应得值
ecc.setImpNum(value);

item1[i] =String.valueOf(value);
}
}

11 个解决方案

#1


你得学着把你遇到的问题,分解为几个子问题。

#2


引用 1 楼 healer_kx 的回复:
你得学着把你遇到的问题,分解为几个子问题。

我是新人 工作半个月    表达不好得地方见谅

#3


看不懂。。。

#4


应该是可以的, 多试试就知道了。

边干边悟吧

#5


引用 3 楼 gagewang1 的回复:
看不懂。。。

意思就是把数组中得String元素 换成 Map集合中得Value   但是数组中有加减乘除之类得  该如何判断

#6


我觉得你可以重新描述一下。。。

#7


楼主是想在替换前验证 客户员工数量 输入是否正确?

按照楼主得思路去实现的话应该可以的

#8


引用 6 楼 healer_kx 的回复:
我觉得你可以重新描述一下。。。

好吧 我重新说下  我现在有一个字符串如:"员工数量,*,工作时间,"我把这个转换成了一个数组
item1["员工数量","*","工作时间"];
现在我得到了一个Map集合  map:key(员工数量)Value("10")
我得问题就是把List中得元素 和 Map中得Key进行比较 然后用Map得Value替换掉  随后得到一个可以进行
计算得算式

#9


引用 6 楼 healer_kx 的回复:
我觉得你可以重新描述一下。。。

还有个疑问就是我数组转String时顺序会不会出错

#10


引用 9 楼 u011402153 的回复:
Quote: 引用 6 楼 healer_kx 的回复:

我觉得你可以重新描述一下。。。

还有个疑问就是我数组转String时顺序会不会出错

不对是String转数组得时候位置会不会乱

#11


写了一段,仅供参考。

        StringBuilder builder = new StringBuilder();
        Map map = new HashMap();
        map.put("a", 2);
        map.put("b", 3);
        String[] items = new String[]{"a", "-", "b"};
        for (String item : items) {
            item = item.trim();
            if (item.length() == 1 && "+-*/()".indexOf(item) != -1) {
                builder.append(item);
            } else if (map.containsKey(item)) {
                builder.append(map.get(item));
            } else {
                builder = new StringBuilder();
                System.out.println(item + "没有对应的值");
                break;
            }
        }
        String exp = builder.toString();
        if (!exp.isEmpty()) {
            ScriptEngineManager manager = new ScriptEngineManager();
            ScriptEngine engine = manager.getEngineByName("Javascript");
            try {
                System.out.println((int) Float.parseFloat(engine.eval("eval ('" + exp + "')").toString()));
            } catch (ScriptException ex) {
                System.err.println("错误的表达式:" + exp);
            }
        }

推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 从相邻元素对还原数组的解题思路和代码
    本文介绍了从相邻元素对还原数组的解题思路和代码。思路是使用HashMap存放邻接关系,并找出起始点,然后依次取。代码使用了HashMap来存放起始点所在的adjacentPairs中的位置,并对重复的起始点进行处理。 ... [详细]
  • HashMap的扩容知识详解
    本文详细介绍了HashMap的扩容知识,包括扩容的概述、扩容条件以及1.7版本中的扩容方法。通过学习本文,读者可以全面了解HashMap的扩容机制,提升对HashMap的理解和应用能力。 ... [详细]
author-avatar
mobiledu2502923673
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有