java - 如何在 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 之类的信息。如果您能帮助我,我将不胜感激。先感谢您。
解决方案
拥有数组后,您可以再次拆分每个字符串,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]);
}
}
推荐阅读
- python - 从字典的python列表中获取False项目?
- ruby-on-rails-4 - 乘客似乎没有运行(Capistrano/Rails/Nginx/Ubuntu)
- javascript - 带有来自csv的d3的静态标题和滚动html表
- flutter - RichText 未按预期设置文本样式
- sql - 从外部 mssql 备份文件创建 Azure SQL DB
- amp-html - 自定义 noscript 样式未通过 AMP 验证,将其与样板文件混淆
- ios - 查看子视图不可见
- java - 如何从 csv 文件中获取记录的长度?
- angular - Angular Material Datatable - 对自定义数据源应用过滤
- r - 如何将类列表的输出分配给R中的变量?