189 8069 5689

java字符串转代码 java字符串转字符

java中,String字符串转化为数字

java中有很多种方式可以将字符串转为数字,要把字符串正确地转换成数字需输入以下代码:

创新互联建站长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为瑞金企业提供专业的成都网站设计、网站制作、外贸营销网站建设瑞金网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

size_t facebook_uint32_to_str(uint32_t value, char *dst)

{

static const char digits[201] =

"0001020304050607080910111213141516171819"

"2021222324252627282930313233343536373839"

"4041424344454647484950515253545556575859"

"6061626364656667686970717273747576777879"

"8081828384858687888990919293949596979899";

size_t const length = digits10(value);

size_t next = length - 1;

while (value = 100) {

auto const i = (value % 100) * 2;

value /= 100;

dst[next] = digits[i + 1];

dst[next - 1] = digits[i];

next -= 2;

}

// Handle last 1-2 digits

if (value  10) {

dst[next] = '0' + uint32_t(value);

} else {

auto i = uint32_t(value) * 2;

dst[next] = digits[i + 1];

dst[next - 1] = digits[i];

}

return length;

}

如何将字符串转换为java代码

Java实现字符串转换成可执行代码

使用commons的jexl可实现将字符串变成可执行代码的功能,我写了一个类来封装这个功能:

import java.util.Map;

import org.apache.commons.jexl2.Expression;

import org.apache.commons.jexl2.JexlContext;

import org.apache.commons.jexl2.JexlEngine;

import org.apache.commons.jexl2.MapContext;

/**

* 动态加载方法

*

*/

public class DyMethodUtil {

public static Object invokeMethod(String jexlExp,MapString,Object map){

JexlEngine jexl=new JexlEngine();

Expression e = jexl.createExpression(jexlExp);

JexlContext jc = new MapContext();

for(String key:map.keySet()){

jc.set(key, map.get(key));

}

if(null==e.evaluate(jc)){

return "";

}

return e.evaluate(jc);

}

}

调用

MapString,Object map=new HashMapString,Object();

map.put("testService",testService);

map.put("person",person);

String expression="testService.save(person)";

DyMethodUtil.invokeMethod(expression,map);

java中怎么执行字符串中的代码

在javascript中eval()可以实现字符串转代码,java中需要使用动态编译。

把获得的字符串写入一个临时文件中,然后编译它,在调用其中的函数。

我们把要转换的字符串构造一个完整的类:如果方法是有返回值的.则:

public object eval(string str){

//生成java文件

string s = "class temp{";

s += "object rt(){"

s += "myclass mc = new myclass();"

s += " return mc."+str+"();";

s += "}"

s +="}";

file f = new file("temp.java");

printwriter pw = new printwriter(new filewriter(f));

pw.println(s);

pw.close();

//动态编译

com.sun.tools.javac.main javac = new com.sun.tools.javac.main();

string[] cpargs = new string[] {"-d", "所在目录","temp.java"};

int status = javac.compile(cpargs);

if(status!=0){

system.out.println("没有成功编译源文件!");

return null;

}

//调用temp的rt方法返回结果:

myclassloader mc = new myclassloader();

class clasz = mc.loadclass("test.class",true);

method rt = clasz.getmethod("rt", new class[]{ string[].class });

return rt.invoke(null, new object[] { new string[0] });

//如果方法没有返回就直接调用

}

我们可以先写好多个重载的eval,有返回值和没有返回值的.以及可以传递参数的.

这样我们就可以用字符串转换为java的语句来执行.


标题名称:java字符串转代码 java字符串转字符
网站URL:http://cdxtjz.cn/article/dosgjdc.html

其他资讯