如何动态重命名或创建新String?

时间:2013-11-18 01:57:30

标签: java string

我有一堆带有奇怪名字的字符串(比如这个docFileeh934fhry),其中包含这样的文字

System.out.println(docFileeh934fhry);

`.............document: 12345.....
...................
...............`

我想重命名这些字符串。这样上面的字符串就是String doc12345

我该怎么做?


我知道如何使用Pattern.compile

获取此号码

假设我有这个号码String docNumber = "12345";

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

我试过

String doc+docNumber = docFileeh934fhry; //没有结果

4 个答案:

答案 0 :(得分:6)

你可以用反射来做到这一点,但必须说这是一种非常糟糕的方法。

您对变量的命名不应取决于任何外部输入。相反,给它一个描述其内容的名称并从那里开始。

通过命名doc1获得了什么?

如果您正在循环使用文件,那么您可能想要的只是currentDocument。您根据函数命名的任何其他变量(firstDocumentnextDocumentoldDocument等),而不是其内容。

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

class Document {
   int id;
   string contents;
}

将所有这些Document对象存储到集合中(如ArrayList)后,您只需根据该ID检索所需的文档,而不必将一堆生成的内容弄乱变量

还有一点要注意:当你有50个文件时,你甚至会怎么用? 100? 10.000?这是不可能维持的。

如果您不想创建自定义课程,可以使用HashMap<Integer, String>路线。

答案 1 :(得分:4)

这不是Java的工作原理。如果要将对象与String关联,请使用Map,例如HashMap<String, String>

答案 2 :(得分:3)

  1. 将字符串分配给带有新名称的变量。请注意,在编写代码时必须已经定义了新名称,它不能即时计算(如果这是你正在驾驶的那个)。

  2. 您不能在变量名中使用+。如上所述,您无法动态创建变量名称。

答案 3 :(得分:3)

这里可能是一个可能的解决方案,使用Hashmap,key是你的varname(你想要的方式),value是你的字符串。