标签: eval

Java - 从String评估字符串

在我的Java代码中,我有这个片段:

String str = "\\u9601";
Run Code Online (Sandbox Code Playgroud)

但我希望它是:

String str = "\u9601";
Run Code Online (Sandbox Code Playgroud)

这代表了一个广泛的角色.

有办法做到这一点吗?

请帮忙.提前致谢.

补充:

对不起描述的问题很抱歉.

System.out.print("\u9601"); //this will display a Chinese character
Run Code Online (Sandbox Code Playgroud)

我目前要求使用JSON进行响应的网页(URL).如果使用"是System.out.print"转储到控制台时,JSON就会变成是6个可见字符 \,ü,9,6,01,而不是中国的字符蚀.

所以实际上我想要的是API可以将"\\ u9601"转换为"\ u9601",因为我无法硬编码Java源代码来自网站.

java string eval

0
推荐指数
1
解决办法
1254
查看次数

方案:正确应用eval函数?

在工作中,我在尝试使用Scheme实现配置脚本时遇到了一个基本问题.为了避免发明一种人为的和受限制的语言,脚本应该包含实际的代码.稍后将对此代码进行评估.要使配置按需工作,必须能够访问某些变量.这些变量仅在评估的上下文中已知.因此,必须在当前环境中评估配置脚本.这是我所说的一个原始的例子:

(let ((a #t))
  (wr "a is ..."
    (eval '(if a "true" "false"))))
Run Code Online (Sandbox Code Playgroud)

运行此代码时,我总是收到一条错误消息,告诉我变量'a'未知.所以问题是:你知道如何评估当前环境中的冻结代码吗?

PS:我使用bigloo编译器.

/////////////////////////////////////////////编辑:/// ////////////////////////////////////////////////// /

当使用Chris建议的方法时,我遇到了另一个有趣的问题,即case关键字的用法.以下两个示例都使用相同的case结构,它应该触发输出"yes!".线.不幸的是,他们表现得不同

通常 - >输出是"是的!" 正如所料:

  (define testit "test")
  (case testit
    (("test")
     (begin (newline) (write "yes!") (newline)))
    (else
      (begin (newline) (write "no!") (newline)))))
Run Code Online (Sandbox Code Playgroud)

使用eval - >输出令人惊讶地"不":

  (define env (null-environment 5))
  (eval '(define testit "test") env)
  (eval '(case testit
           (("test")
            (begin (newline) (write "yes!") (newline)))
           (else
            (begin (newline) (write "no!") (newline))))) 
Run Code Online (Sandbox Code Playgroud)

这有任何意义吗?

scheme eval expression-evaluation bigloo

0
推荐指数
1
解决办法
1468
查看次数

有关eval()函数的帮助

我需要有关此eval()问题的帮助:

var ScoreFuncName = 'scoreCondition_' + criteriaName;

var allCheckBox = $('div#'+SubListId).find("input:image[name^='" + ChkBoxPrefix + "'][value='1']");

eval(ScoreFuncName + '(' + allCheckBox.length + ')');
Run Code Online (Sandbox Code Playgroud)

eval()功能正在评估选中哪个复选框并相应地执行其他操作,它在Firefox中运行良好,但在谷歌Chrome和IE中运行不佳.

如何解决这个问题,抓了我3天.谢谢.

javascript checkbox eval function

0
推荐指数
1
解决办法
220
查看次数

如何将字符串中的数学表达式转换为整数

例如,我有一个声明:

$var = '2*2-3+8'; //variable type is string
Run Code Online (Sandbox Code Playgroud)

如何使它平等9

php math eval

0
推荐指数
1
解决办法
437
查看次数

Eval()vs开发人员工具

因此,古老的标准是使用Eval是不好的,因为它可能导致重大的安全问题; 特别是在您正在评估可能来自用户输入的某些内容的情况下.这使得100%有意义,并且我从未遇到任何避免使用Eval的问题.不过,最近我遇到了一个奇怪的情况,这让我想到这种类型的东西有点不同.

我写了一个类似JS的函数:

function someFun(param, callback) {
    bool = someOtherFun(param);
    if(bool)
        callback();
    else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

这被大大剥离,但是主体是相同的:它调用另一个函数,并且基于它的返回值将执行作为参数提供的函数,否则它将返回false.但是,我认为,使用F12中的JS控制台,可以像使用Eval(txtbox.value)一样轻松利用这种东西.那有关系吗?

在F12的这个世界里,在我看来,Eval是我们最不担心的.任何知道注射攻击的人都可能知道F12是什么.我错了吗?

javascript eval developer-tools

0
推荐指数
1
解决办法
276
查看次数

Python - 这是eval还是exec的可接受用途?还有其他办法吗?

我是Python的新手,并且一直在寻找一种方法来调用一个函数,该函数的名称由字符串和变量的组合形成,当用户选择其中一个选项时,该函数会动态填充.

例:

我用一个菜单启动程序,为用户提供某些选项(选择1,2,3或4)

如果用户选择1,变量xyz将填充一个元组或列表内的字符串.

将此字符串分配给变量,我调用另一个函数,它给了我另一个选项.

如果我得到选项1,我的代码会将xyz varible附加到预定义的字符串中,该字符串将形成一个函数名称(将在下一个调用的名称).

if int(option) == 1:
#prefixfunc will be that predefined string that will be the prefix for every function  #to be called
    exec('prefixfunc'+xyz'()')
    #or
    #eval('prefixfunc_'+xyz'()')
    #for example, we have xyz as abc, then it calls function prefixfunc_abc()
Run Code Online (Sandbox Code Playgroud)

它在代码中工作正常.我不认为这对用户添加不同输入的情况可能是一种责任.由于在列表或元组中使用已定义的字符串来分配变量.

我希望我已经说清楚了.

只是为了更清楚:

def maint_car():
print('It Works!!! But did you come until here in a safe way?' )

def veh_func():
func=( "Maintenance", "Prices", "Back", "Quit" )
ord = 0

for i in func:
    ord += 1
    print(ord,'\b)', …
Run Code Online (Sandbox Code Playgroud)

python eval exec python-3.x

0
推荐指数
1
解决办法
279
查看次数

使用eval'$ cmd'执行变量将生成错误

如果我将cat命令保存到字符串然后执行它,那么我将收到错误

linux# cmd="cat /data/test/test.tx* | grep toto"
linux# eval '$cmd'
cat: |: No such file or directory
cat: grep: No such file or directory
cat: toto: No such file or directory
Run Code Online (Sandbox Code Playgroud)

即使

linux# $cmd
cat: |: No such file or directory
cat: grep: No such file or directory
cat: toto: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我知道

linux# eval "$cmd"
Run Code Online (Sandbox Code Playgroud)

工作,但在我的脚本中我想使用 eval '$cmd'

如何将cat命令保存到变量中时执行?

现在如果cmd="echo anymessage"那么

linux# eval '$cmd'
linux# $cmd
linux# eval "$cmd"
Run Code Online (Sandbox Code Playgroud)

所有这些都会奏效

linux bash shell eval cat

0
推荐指数
1
解决办法
4443
查看次数

字符串到变量名Haskell

我发现在Haskell中学习Parsec很难,所以我正在尝试创建我的大学项目(一个用表格解析文件的解析器)

x=3
y=4
z=x+y
badluck=(x+sqrt(z)*7)
Run Code Online (Sandbox Code Playgroud)

我设法写了一个函数,从文件中获取所有内容并验证文件,我坚持让x成为变量名.我知道在javascript中它是eval但我在Haskell中找不到类似的东西.请帮忙!

这是我到目前为止所做的事情:

ischarorscore :: Char -> Bool
ischarorscore a = if ((a>='A' && a<='Z') || (a>='a' && a<='z') || a=='_')
        then True 
        else False

ischarscoredigit :: Char -> Bool
ischarscoredigit a = if ((a>='A' && a<='Z') || 
                      (a>='a' && a<='z') || 
                       a=='_' ||
                       a>='0' && a<='9') then True else False

isvar :: String -> Bool
isvar [] = False
isvar (h:t) = if (ischarorscore h) then (isvarbody t) else False

isvarbody :: String -> Bool …
Run Code Online (Sandbox Code Playgroud)

variables parsing haskell eval parsec

0
推荐指数
1
解决办法
708
查看次数

为什么你可以在内部使用函数repr(y)而不是str(y)使用eval()?

以下是我发现并希望有人解释的一些代码.

如果我将一个字符串赋给变量y,用eval函数计算它并将内容分配给变量y2,解释器返回true.

>>> y = 'a string'
>>> y2 = eval(repr(y))
>>> y == y2
>>> True
Run Code Online (Sandbox Code Playgroud)

以这种方式使用str(y):

>>> eval(str(y))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
a string
       ^
SyntaxError: unexpected EOF while parsing
Run Code Online (Sandbox Code Playgroud)

不被允许.这是为什么?

python string eval repr

0
推荐指数
1
解决办法
1416
查看次数

perl eval的问题

我有以下代码,它将$mystring通过从文件中读取来设置值.

#!/usr/bin/perl

use warnings;
use strict;

use Data::Dumper;

my $mystring1 = "vault.\$_[0].org/\$_[1].\$_[2]/os/\$_[4]";
my $mystring2 = "vault.$_[0].org/$_[1].$_[2]/os/$_[4]";

&myfunc ("A1", "b2", "C3", "d4");

sub myfunc {

    print Dumper(\@_);

    print ("Before=$mystring1\n");
    my $test = eval($mystring1);
    print ("test=$test\n");

    print ("Before=$mystring2\n");
    $test = eval($mystring2);
    print ("test=$test\n");
}
Run Code Online (Sandbox Code Playgroud)

但是会生成以下输出:

Use of uninitialized value $_[0] in concatenation (.) or string at ./t.pl line 7.  
Use of uninitialized value in concatenation (.) or string at ./t.pl line 7.  
Use of uninitialized value in concatenation (.) or …
Run Code Online (Sandbox Code Playgroud)

perl eval

0
推荐指数
1
解决办法
90
查看次数