我正在寻找一种相对简单(与编写解析器相比)的方法来评估Java中的布尔表达式,我不想使用JEP库.
我有一个像String这样的String表达式(x > 4 || x < 8 && p > 6),我的目标是用值替换变量.
有没有办法评估这个表达式?
请记住,这可能是任何级别的深度,因此编写解析器将非常复杂.
说我有一个字符串, $char. $char == "*".
我还有两个变量,$ a和$ b,分别等于"4"和"5".
我如何得到结果 $a $char $b, ie 4 * 5 ?
谢谢 :)
有没有一种方法可以让我在字符串中评估数学表达式?示例(非实际代码):
输入="2 + 2"
输出= SomeMethod(输入)
输出= 4
更新:没关系,我通过使用DataTable.Compute找到了解决方法.
使用GDB进行调试时,我想将一个便利变量设置为新构造的值.
我正在使用Qt框架编程,所以我想创建一个QString,但这与问题无关,因为我想知道如何在任何类中执行此操作.
我试过了
(gdb) set $str = 'QString::QString("abc")'
No symbol "QString::QString("abc")" in current context.
(gdb) set $str = QString::QString("abc")
Cannot resolve method QString::QString to any overloaded instance
(gdb) set $str = QString("abc")
A syntax error in expression, near `("abc")'.
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用set overload-resolution off,产生以下结果:
set $str = QString::QString("abc")
non-unique member `QString' requires type instantiation
set $str = 'QString::QString(const char*)'("abc")
Too few arguments in function call.
Run Code Online (Sandbox Code Playgroud)
所以我假设需要一个这个指针:
(gdb) set $str = 'QString::QString(const char*)'(malloc(sizeof(QString)), "abc")
(gdb) p $str
$8 = void
Run Code Online (Sandbox Code Playgroud)
好的,构造函数返回void,这意味着我必须在某处保存malloc的返回值: …
可能重复:
Echo扩展PS1
有没有什么办法来"评价" PS1,PS2从bash脚本中,等?
虽然,我可以使用其他方法来获取当前的所有元素PS1,但我真的希望能够重用其定义而不是使用这些替代方法.
例如,
=====================================
PS1 element --> Alternate means
=====================================
\u --> $USER
\h --> $HOSTNAME
\w --> $PWD
...
=====================================
Run Code Online (Sandbox Code Playgroud)
我可以很好地使用我的脚本中的"备用方法"列,但我不想这样做.在我PS1,我,例如,通过终端转义序列使用粗体蓝色,我希望能够通过评估简单地重用PS1.
我在PhantomJS中运行jQuery时遇到问题.我找到了这个答案,其中讨论了在evaluate函数中没有可用的变量,但问题是关于节点模块,在我的例子中我只调用console.logevaluate函数.我也把这个问题放在了GitHub上.
以前,对于某些页面,以下evaluate代码未执行.现在@ b1f56gd4已经提供了一些帮助,它现在打印消息; 我无法执行它,但现在我可以看到:
https://login.yahoo.com/上的页面从http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js运行了不安全的内容.
我无法从不同的域加载jQuery,--local-to-remote-url-access=true或者--web-security=false选项没有区别.
我将尝试在本地加载jQuery.这是代码:
console.log('Loading a web page');
var url = 'https://login.yahoo.com/';
var page = require('webpage').create();
console.log('Setting error handling');
page.onConsoleMessage = function (msg) {
console.log(msg);
};
page.onError = function (msg, trace) {
console.log(msg);
trace.forEach(function(item) {
console.log(' ', item.file, ':', item.line);
})
phantom.exit();
}
console.log('Error handling is set');
console.log('Opening page');
page.open(url, function (status) {
if (status != 'success') {
console.log('F-' + status);
} …Run Code Online (Sandbox Code Playgroud) 问题:我有一个后端进程,在某些时候他收集并构建一个大的tar文件.此tar接收几个目录和一个排除文件.这个过程可能需要几分钟时间,我想在我的前端程序(GUI)中报告皮重过程的进度(这对于按下下载按钮的用户来说是个大问题,似乎没有任何事情发生. ..).
我知道我可以在tar命令中使用-v -R并计算文件和大小进度但我正在寻找某种tar预运行模式/干运行来帮助我评估预期的文件数或预期的tar大小.
我正在使用的命令: tar -jcf 'FILE.tgz' 'exclude_files' 'include_dirs_and_files'
对于愿意提供帮助的每个人来说都是10倍.
我需要编写一个TSQL用户定义的函数,它将接受一个字符串并返回一个数字.
我会调用函数就像dbo.EvaluateExpression('10*4.5*0.5')应该返回数字22.5
任何人都可以帮我写这个功能EvaluateExpression.
目前我正在使用CLR功能,我需要避免.
EDIT1
我知道这可以使用存储过程完成,但我想在一些语句ex中调用此函数: select 10* dbo.EvaluateExpression('10*4.5*0.5')
此外,我有大约400,000个像这样的公式进行评估.
EDIT2
我知道我们可以在函数内部使用osql.exe来解决这个问题.但由于权限设置,我也不能使用它.
我阅读了几篇关于Google Spreadsheet缺少评估功能的旧帖子.2016年有什么解决方案吗?
最简单的例子.
UNIQUE(C1:C5)我试过用这种方式连接:'B1'包含="="&A1但结果是字符串= UNIQUE(C1:C5).我也试过了间接公式.
有什么建议打破最后的希望吗?
附加说明
目的是在电子表格中编写公式,并通过其他几个电子表格使用这些公式.因此,任何改变都必须在一个地方完成.