Java 如何动态重命名或创建新字符串?

Java 如何动态重命名或创建新字符串?,java,string,Java,String,我有一堆名字很奇怪的字符串,比如docFileeh934fhry,其中包含这样的文本 System.out.printlndocFileeh934fhry 我想重命名这些字符串。因此,上面的字符串将是字符串doc12345 我该怎么做 我知道如何使用Pattern.compile获得这个数字 假设我有一个数字字符串docNumber=12345 现在如何动态创建新字符串 我试过了 字符串doc+docNumber=docFileeh934fhry;//没有结果 将字符串分配给具有新名称的变量。请

我有一堆名字很奇怪的字符串,比如docFileeh934fhry,其中包含这样的文本

System.out.printlndocFileeh934fhry

我想重命名这些字符串。因此,上面的字符串将是字符串doc12345

我该怎么做

我知道如何使用Pattern.compile获得这个数字

假设我有一个数字字符串docNumber=12345

现在如何动态创建新字符串

我试过了

字符串doc+docNumber=docFileeh934fhry;//没有结果

将字符串分配给具有新名称的变量。请注意,在编写代码时必须定义新名称,如果这是您的目的,则无法动态计算新名称

不能在变量名中使用+。如上所述,您不能动态生成变量名


您可能可以通过反射来实现这一点,但必须指出,这是一种非常糟糕的方法

变量的命名不应依赖于任何外部输入。相反,给它一个描述其内容的名称,然后从那里开始

将其命名为doc1有什么好处

如果您正在循环文件,那么您可能只需要一个currentDocument。任何其他变量firstDocument、nextDocument、oldDocument等都是根据其功能命名的,而不是根据其内容命名的

如果需要一种唯一标识正确文档的方法,请创建一个类

class Document {
   int id;
   string contents;
}
将所有这些文档对象存储到一个集合(如ArrayList)中后,您只需根据该id检索所需的文档,而无需处理一堆生成的变量

另一点需要注意的是:当你有50个文档时,你会如何使用它?100? 10.000? 这是不可能维持的


如果不想创建自定义类,可以使用HashMap路线。

这不是Java的工作方式。如果要将对象与字符串关联,请使用诸如HashMap之类的映射。

这里可能有一种解决方案,使用HashMap,key是您的varname,value是您希望的方式,value是您的字符串。

class Document {
   int id;
   string contents;
}