调用方法显示聊天记录中的输出名称

时间:2017-07-10 16:27:10

标签: java regex xml methods

我在将一个方法实现为输出的一些代码时遇到了麻烦。基本上,我创建了一个名为getName的方法,它将人名分配给唯一的数字。然后,我得到一个包含聊天记录的输入文件。在我过滤掉我需要的线后,我需要它能够显示人的名字而不是数字。这是我方法的一小部分:

public static String getName(int id) {
        // External identifiers specified
        switch (id) {
        case 5644:
            return "Steve Jobs";
        case 5640:
            return "John Smith";
        case 5663:
            return "Johnny Appleseed";

以下是获取输入的代码,并显示我需要的输出:

try
  {
  // assigns the input file to a filereader object
     BufferedReader infile = new BufferedReader(new FileReader(log));

      sc = new Scanner(log);
            while(sc.hasNext())
              {
                 String line=sc.nextLine();
                   if(line.contains("LANTALK")){
                    Pattern pattern = Pattern.compile("
                    (\\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\s\\[D\\].+<MBXID>(\\d+)
                    <\\/MBXID><MBXTO>(\\d+)<\\/MBXTO>.+<MSGTEXT>(.+)
                    <\\/MSGTEXT>", Pattern.MULTILINE + Pattern.DOTALL); 
                    // Multiline is used to capture the LANMSG more than 
                    once, and Dotall is used to make the '.' term in regex 
                    also match the newline in the input
                Matcher matcher = pattern.matcher(line);
                while (matcher.find())
                    {
                       String output = matcher.group(1) + " [" + 
                       matcher.group(2) + "] to [" + matcher.group(3) + "] " 
                       + matcher.group(4);
                       System.out.println(output);
                       System.out.println();
                    }

                   } // End of if

               } // End of while

每行输出如下所示:

14:49:28.817 [1095] to [5607] I could poke around with it a bit and see what's available.

我只需要数字10955607来显示我在方法中指定的人名。所以我问我如何在我的代码中实现它?是否有一种特殊的方式我需要调用该方法才能识别数字?我是否使用某种正则表达式或XML?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您应该使用词典

使用字典的好处:

  • 您可以同时访问用户的名称及其ID号作为键值对。
  • 他们很快。
  • 您将无需使用switch语句来跟踪用户的ID。

<强>链接: