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

标签 java string parsing variables

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

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

 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/

相关文章:

java - 我的 Excel 文件或文本文件中有一百万条记录,我想使用 java 中的多线程概念将该数据插入数据库

php - 比较php中的两个字符串并显示字符差异

Python:删除包括一行中某个字符之后的所有内容

c++ - 如何从 C++ 中的推文中删除表情符号?

python - 解构 if/else Python

java - 将函数列表转换为可以传递给 varargs 方法参数

java - 如何使用java程序执行mongoexport命令

java - 尝试使用 @ManyToOne 映射来持久化实体

c - 如何在 C 中使用用户输入制作字符串函数?

Java:用整数替换字符串