gpt4 book ai didi

java - 将字符串解析为不同的变量类型

转载 作者:行者123 更新时间:2023-11-30 06:39:39 25 4
gpt4 key购买 nike

这里的编程相对较新,所以如果这是相当基本的,我很抱歉。

我正在尝试将字符串行转换为不同类型的实际变量。我的输入是以下格式的文件:

 double d1, d2 = 3.14, d3;
int a, b = 17, c, g;
global int gInt = 1;
final int fInt = 2;
String s1, s2 = "Still with me?", s3;

此时这些行都是字符串。我希望从字符串中提取变量并接收实际变量,以便我可以使用和操作它们。

到目前为止,我已经尝试使用正则表达式,但我在这里遇到了困难。希望得到一些关于如何做到这一点的指导。我想制作一个通用的类型格式,例如:

 public class IntType{
boolean finalFlag;
boolean globalFlag;
String variableName;

IntType(String variableName, boolean finalFlag, boolean globalFlag){
this.finalflag = finalFlag;
this.globalFlag = globalFlag;
this.variableName = variableName;
}
}

为每个变量类型创建一个新的包装器。

通过使用和操作,我想比较我创建的包装器并检查重复的声明等。

但我不知道我是否走在正确的道路上。

注意:忽略错误的格式(即末尾没有“;”等)

最佳答案

虽然其他人说这是不可能的,但实际上是不可能的。然而,它对 Java 有一定的深入。只需搜索java动态类加载。例如这里: Method to dynamically load java class files

它允许您在运行时动态加载 java 文件。然而,您当前的输入看起来不像 java 文件,但可以通过使用一个小的包装类将其轻松转换为 java 文件,例如:

public class CodeWrapper() {
// Insert code from file here
}

在将资源加载为类之前,您可以通过简单的文件或文本操作来完成此操作。

加载类后,您可以通过反射访问其变量,例如通过

Field[] fields = myClassObject.getClass().getFields();

这允许您访问可见性修饰符、变量的类型、名称、内容等等。

当然,这种方法假设您的代码实际上是有效的 java 代码。如果不是,并且您想确认是否是,则可以尝试加载它。如果失败,则无效。

关于java - 将字符串解析为不同的变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44604387/

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