首页 > 解决方案 > 如何在 Java 中获取字符串中的特殊部分?

问题描述

我必须从我拥有的文件中读取命令并根据每个命令采取必要的措施。我能够找出从文件中读取的过程以及命令是什么,但是我无法将命令中包含的特定信息传输到程序中。例如,读取的行如下

Add id:12 name:"Sandik" singer:"Muslum Gurses" year:2009 count:5 price:20

正如您在下面看到的那样,我已经在每个空间中分隔了这条阅读线。

 Scanner scan = new Scanner(new File(args[0]));
 while (scan.hasNextLine()) {
      String data = scan.nextLine();
      String[] readedCommand = data.split(" ");

此操作后,readedCommands[0]给我读取命令。对于上面的例子,readedCommands[0] = "Add"

在这一步之后,我需要从命令的其余部分中提取信息,但我不知道如何提取诸如 id、name、singer 之类的信息。如果您能帮助我,我将不胜感激。先感谢您。

标签: javaregexstringfilesplit

解决方案


拥有数组后,您可以再次拆分每个字符串,split(":")以将键与值分开。使用 aHashMap来存储键和值。

HashMap<String, String> hmap = new HashMap<String, String>();
 while (scan.hasNextLine()) {
      String data = scan.nextLine();
      String[] readedCommand = data.split(" ");
      for(int i = 1; i < readedCommand.length; i++){
          String[] pair = readedCommand[i].split(";");
          hmap.put(pair[0], pair[1]);
      }

}

推荐阅读