gpt4 book ai didi

java - 如何在android中编译java代码

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:49 27 4
gpt4 key购买 nike

Possible Duplicate:
Convert String to code

我需要计算包含有效 Java 代码的字符串

例如。我应该能够得到 6来自 String code="Math.abs(2*3);";

最佳答案

这听起来是一个非常有趣的想法,我能问一下您的应用程序的目的是什么吗?

最好的办法是建立一个您将支持的已知模式的字典。

我的第一个想法是您应该创建一个接受模式的ArrayList。例如:

ArrayList<String> acceptedPatterns = new ArrayList<String>();
acceptedPatterns.add("math.abs");
acceptedPatterns.add("math.acos");

等等

然后,当您掌握该字符串时,您可以评估该列表。

String foundPattern = null;
String myStringFromInput = editText.getText();
for (String pattern : acceptedPatterns){
if (myStringFromInput.contains(pattern){
// we have recognised a java method, flag this up
foundPattern = pattern;
break;
}
}

此时,您的 foundPattern 变量中将包含“Math.abs”。

然后,您可以利用您对该方法如何工作的了解来计算它。我想不出一种 super 有效的方法,但至少可以让你继续下去的基本方法就像一个大的 if/else 语句:

int result = 0;
if (foundPattern.contains("Math.abs"){
result = computeMathAbs(myStringFromInput);
}else if (foundPattern.contains("Math.acos"){
// etc
}

然后在您的 computeMathAbs 方法中,您将执行以下操作:

private int computeMathAbs(String input){
int indexOfBracket = input.indexOf("(");
int indexOfCloseBracket = input.indexOf(")");
String value = input.subString(indexOfBracket,indexOfCloseBracket);
int valueInt = computeFromString(value);
int result = Math.abs(valueInt);
return result;
}

然后您可以显示传回的结果。

computeFromString() 方法将执行类似的操作,查找 * 符号或其他符号,并将其转换为乘法,如 abs 示例。

显然这是一个基本的例子,所以你一次只能计算一个java方法,我认为一次多个方法的复杂性将很难编程。

您还需要进行大量错误处理,并认识到用户可能无法输入完美的 java。蠕虫 jar 头。

关于java - 如何在android中编译java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13643160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com