`
xuchong2013
  • 浏览: 4724 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

map中的值替换掉字符串中的变量(含运算)

阅读更多
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang.text.StrSubstitutor;

import bsh.Interpreter;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
Test t = new Test();
Map map = new HashMap();
map.put("N1", new Integer(1));
map.put("N2", new Integer(2));
map.put("N3", new Integer(3));
map.put("N4", new Integer(4));
map.put("N5", new Integer(22));
map.put("N6", new Integer(6));
String str = "你好$${${N5}+${N6}-${N4}}";
StrSubstitutor strSubstitutor = new StrSubstitutor(map);
String result = t.operateVariable(strSubstitutor.replace(str),map);
System.out.print(result);
}

public String operateVariable(String str ,Map map){
String result = "";
int begin = 0;
int end = 0;
int count = 0;
String temp = "";
for(int i=0;i<str.length();i++){
      if(str.charAt(i)=='$'){
      begin = i+2;
      result += str.substring(end, i);
      }
      if(str.charAt(i)=='}'){
      end = i+1;
      temp = str.substring(begin, i);
      Interpreter  ii = new Interpreter();
      try{
      count = ((Integer)ii.eval(temp)).intValue();
      }catch(Exception e){
      e.printStackTrace();
      }
      result += count;
      }
      if(i==str.length()-1){
      result += str.substring(end, i+1);
      }
}
return result;
}
}
分享到:
评论

相关推荐

    hive函数大全(中文版)

    4. 带分隔符字符串连接函数:concat_ws 23 5. 字符串截取函数:substr,substring 24 6. 字符串截取函数:substr,substring 24 7. 字符串转大写函数:upper,ucase 24 8. 字符串转小写函数:lower,lcase 25 9. 去空格...

    freemarker总结

    defaultValue,第一种用法不给缺失的变量指定默认值,表明默认值是空字符串,长度为0的集合,或者长度为0的Map对象. 使用!指定默认值时,并不要求默认值的类型和变量类型相同.使用??运算符非常简单,它总是返回一个布尔值...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例076 批量替换某一类字符串 95 实例077 把异常与错误信息显示到窗体中 97 实例078 从字符串中分离文件路径、 文件名及扩展名 98 实例079 判断手机号的合法性 99 实例080 用字符串构建器追加字符 100 实例081 去掉...

    Perl语言入门(第五版-中文版).pdf

    字符串中的数组内插 foreach控制结构 标量上下文与列表上下文 列表上下文中的(stdin) 习题 第四章子程序 定义子程序 调用子程序 返回值 参数 子程序中的私有变量 长度可变的参数列表 关于词法(my)变量 ...

    廖雪峰 Java 教程.doc

    字符和字符串 数组类型 流程控制 输入和输出 if判断 switch多重选择 while循环 do while循环 for循环 break和continue 数组操作 遍历数组 数组排序 多维数组 命令行参数 面向对象编程 面向对象基础 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 String类的最佳拍档——StringBuffer类 227 9.3.1 StringBuffer:专业操纵字符 228 9.3.2 String和StringBuffer一个都不能少 229 9.4 最...

    GO语言学习文档,适合初级入门学习

    * 字符串由语言提供,一旦建立就不能再改变. * GO提供哈希表,称之类映射(map) * 分离的线程执行, 通过通道通讯,也是语言本身集成的.后面会详细讨论. * 特定类型 (映射和通道后面会详细说明) 以引用方式...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    9.2.7 替换字符串中的内容 226 9.2.8 String对象——磐石刻字 227 9.3 String类的最佳拍档——StringBuffer类 227 9.3.1 StringBuffer:专业操纵字符 228 9.3.2 String和StringBuffer一个都不能少 229 9.4 最...

    突破程序员基本功的16课.part2

    4.4.2 使用StringBuilder和StringBuffer进行字符串连接 4.4.3 尽早释放无用对象的引用 4.4.4 尽量少用静态变量 4.4.5 避免在经常调用的方法、循环中创建Java对象 4.4.6 缓存经常使用的对象 4.4.7 尽量不要使用...

    智普教育Python培训就业班 150多集Python基础+就业视频教程.txt

    智普教育python培训就业班python随堂视频教程 19 字符串算术运算习题答案.flv 智普教育python培训就业班python随堂视频教程 20 字符串习题答案.flv 智普教育python培训就业班python随堂视频教程 21 字符串chr函数...

    C++大学教程,一本适合初学者的入门教材(part2)

    16.13 字符串处理库中的其他函数 小结 术语 自测练习 自测练习答案 练习 第17章 预处理器 17.1 简介 17.2 预处理指令#include 17.3 预处理指令#define:符号常量 17.4 预处理指令#define:宏 17.5 条件编译 ...

    C++大学教程,一本适合初学者的入门教材(part1)

    16.13 字符串处理库中的其他函数 小结 术语 自测练习 自测练习答案 练习 第17章 预处理器 17.1 简介 17.2 预处理指令#include 17.3 预处理指令#define:符号常量 17.4 预处理指令#define:宏 17.5 条件编译 ...

    vue语法.rar

    它的值可以被转换成布尔值或字符串,不能转换成数字 十八、set数据结构 set数据结构,类似数组,所有的数据都是唯一的,没有重复的值。它本身是一个构造函数 size数据长度 add()添加一个数据 delete()删除一...

    java初学者必看

    5.1.3 StringBuffer创建字符串 5.2 连接字符串 5.2.1 与字符串的连接 5.2.2 与其他数据类型的连接 5.3 String字符串操作 5.3.1 基本操作 5.3.2 比较 5.3.3 转化 5.3.4 查找 5.3.5 截取拆分 5.3.6 替换或...

Global site tag (gtag.js) - Google Analytics