java - 如何在java中创建唯一ID

标签 java class

所以我必须做一些工作,而且我对 Java 还很陌生,我们刚刚开始学习它。我们只使用像“模式”、“匹配”、数组列表这样的表达式,我相信对你们大多数人来说都是非常基本的。它是一个名为数据集成的类的工作,我们基本上放置维基百科链接并放置正则表达式,如果您搜索特定作者,则会显示他们的信息,并且我们将所有数据保存在 XML 文件中。在该 xml 中,我们还必须为我们搜索的每个作者创建一个 ID。 例如,如果您首先搜索 JK_ROWLING,她将是 01,然后我们搜索 VERONICA_ROTH,所以她是 02 等等,当然也将其保存在文件中。

这里有一些代码供你们理解工作和正则表达式,就像在这篇文章中一样,我搜索任何作者的任何出生日期

public static String procuraDataNascimento(String nome_escritor) throws IOException{

        String link = "https://pt.wikipedia.org/wiki/" + nome_escritor;
        String pesquisa =""; 
        HttpRequestFunctions.httpRequest(link,pesquisa,"ESCRITORES.txt");
        String Nasc_er0 = "<td scope=\"row\" style=\"vertical-align: top; text-align: left; font-weight:bold; padding:4px 4px 4px 0\">Data de nascimento</td>";
        String Nasc_er = "<td style=\"vertical-align: top; text-align: left; padding:4px\"><a href=\"/wiki/(.+)#Nascimentos\" title=\"(.+)\">(.+)</a> de <a href=\"/wiki/(.+)\" title=\"(.+)\">(.+)</a></td>";
        String Nasc_er2 = "<td style=\"vertical-align: top; text-align: left; padding:4px\">(.*)<a href=\"/wiki/(.+)#Nascimentos\" title=\"(.+)\">(.+)</a> de <a href=\"/wiki/(.+)\" title=\"(.+)\">(.+)</a>(.*)</td>";
        String Nasc_er3 = "<td style=\"vertical-align: top; text-align: left; padding:4px\">(.+)</td>";
        String Nascimento = null;
        Scanner ler = new Scanner(new FileInputStream("ESCRITORES.txt"));
        Pattern p0 = Pattern.compile(Nasc_er0);
        Pattern p = Pattern.compile(Nasc_er);
        Pattern p2 = Pattern.compile(Nasc_er2);
        Pattern p3 = Pattern.compile(Nasc_er3);
        while (ler.hasNextLine()) {
            String linha = ler.nextLine();
            Matcher m = p0.matcher(linha);
            if(m.find()){
                linha = ler.nextLine();
                Matcher t = p.matcher(linha);
                Matcher r = p2.matcher(linha);
                Matcher q = p3.matcher(linha);
                if (t.find()) {
                    Nascimento = t.group(2) + " de " +  t.group(5);
                } 
                else if (r.find()) {
                    Nascimento = r.group(3) + " de " +  r.group(5);   
                }
                else if(q.find()){
                    Nascimento = q.group(1);
                }
            }
        }
        ler.close();
        return Nascimento;
    }

当我把这个

{

String x = Wrapper_escritores.procuraDataNascimento("Roberto_Bolaño");

System.out.println(x);

}

例如,它显示 Roberto Bolãno 的出生日期。 我还已经为作者提供了一个带有构造函数、获取和设置的类。 你们能帮忙吗?到目前为止我们所学到的东西都非常基础,你知道该怎么做吗? 谢谢!!

最佳答案

您可以生成 UUID 代表不可变的类 universally unique identifier (UUID) ,类似

String name = "Roberto Bolãno";
UUID uuid = UUID.nameUUIDFromBytes(name.getBytes(Charset.forName("UTF-8")));
System.out.println(uuid.toString());

哪些输出

4fb97aea-d741-3d78-a037-0eaa8848fc7a

或者,创建一个 Map<Integer, String> (请参阅 Tutorial )并在添加新作者时增加计数器(如果您的应用程序需要可重新启动,您还需要保留这些值)。

关于java - 如何在java中创建唯一ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36776161/

相关文章:

java - COMET/Server Push如何在Google app engine上实现?

c# - 在命名空间中访问类中的 float

c++ - 为什么要给小类成员返回一个 const 引用?

c++ - 友元和运算符重载帮助

java - 砖 block 碰撞 Java

java - 如何将 float 数组转换为 glVertexPointer 的 java.nio.Buffer?

java - 无法导入 Google Analytics

java - Java调用方法时可以省略 'this'吗?

python - 如何在 __new__ 中正确构建一个具有 type(3 args) 和 2 个祖先的类?

python matplotlib 如何使用类打开图像