
正文
java把字符串转为代码 java字符串转decimal
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何将字符串转换为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);
相关问答
Q1: 将一行java转换成c#代码
byte[] bs= System.Text.Encoding.Default.GetBytes("20090717永强1");
string s= System.Text.Encoding.Default.GetString(bs);
一、
System.Text.Encoding.Default与系统语言区域有关,简中地区是 ANSI 字符集
而用System.Text.Encoding.GetEncoding("ISO-8859-1")去解码定有问题
二、
每一个字符包括中文都是2字节,英文字母或数字是一个字节
所以你要(转换后的长度和GetBytes获得的长度一致)除非不使用中文(或不正常的中文-乱码)
而str.length是不管是一个字母或数字和中文都算一个长度,所以有中文,你是不可能得到你想要的结果
如果你要substring最好用中文计
不知以下的解决是不是你想用的
public static string ByteSubString(string strInput , int startIndex,int length)
{
strInput = (strInput??"").Trim() ;
int byteLen = Encoding.Default.GetByteCount( strInput ) ;
if ( byteLen length )
{
string resultStr = String.Empty ;
for ( int i = startIndex/2 ; i strInput.Length ; i++ )
{
if ( Encoding.Default.GetByteCount( resultStr ) length )
{
resultStr += strInput.Substring( i , 1 ) ;
}
else
{
break ;
}
}
return resultStr ;
}
else
{
return strInput ;
}
}
Q2: java web开发中如何将字符串转码
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
我们主要是通过String对象的getbyte("ISO-8859-1","UTF-8")方法,其中第一个参数是原始类型,第二个参数是我们要转成的编码类型
Public String translate (String str) {
String tempStr = "";
try {
tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
tempStr = tempStr.trim();
}
catch (Exception e) {
System.err.println(e.getMessage());
}
return tempStr;
}
Q3: java如何把string转为utf-8
可通过以下代码转:
/**
* Get XML String of utf-8
*
* @return XML-Formed string
*/
public static String getUTF8XMLString(String xml) {
// A StringBuffer Object
StringBuffer sb = new StringBuffer();
sb.append(xml);
String xmString = "";
String xmlUTF8="";
try {
xmString = new String(sb.toString().getBytes("UTF-8"));
xmlUTF8 = URLEncoder.encode(xmString, "UTF-8");
System.out.println("utf-8 编码:" + xmlUTF8) ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// return to String Formed
return xmlUTF8;
}
Java programming language具有目前大部分编程语言所共有java把字符串转为代码的一些特征java把字符串转为代码,被特意设计用于互联网java把字符串转为代码的分布式环境。Java具有类似于C++语言的"形式和感觉",但它要比C++语言更易于使用,而且在编程时彻底采用了一种"以对象为导向"的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。
Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。目前,最常用的两种互联网浏览器软件中都包括一个Java虚拟机。几乎所有的操作系统中都增添了Java编译程序。
Q4: java 怎么把一段字符串当做代码来执行
你这个其实是模拟编译器做的事情。可以用正则表达式匹配输入的字符串,如果匹配已经定义的函数,就执行。
Q5: 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字符串转decimal、java把字符串转为代码的信息别忘了在本站进行查找喔。







