如何读取包含多个拆分的Java文件

如何读取包含多个拆分的Java文件,java,filereader,Java,Filereader,我有一个文本文件上面的数据,我需要分别得到整数值 简而言之,第一个BB代表食物类型 使用“:”拆分表示材质 用“|”表示完成任务的时间 如何使用文件读取器在java中获取这5个参数谢谢这里使用正则表达式匹配器,并在输入字符串上迭代,在进行过程中匹配纯数字: BB [FL:60 BT:10 SG:20 MK:10 | 12] String input=“BB[FL:60 BT:10 SG:20 MK:10 | 12]”; 字符串regex=“\\d+(?=[^0-9.])”; List val

我有一个文本文件上面的数据,我需要分别得到整数值

简而言之,第一个BB代表食物类型 使用“:”拆分表示材质 用“|”表示完成任务的时间


如何使用文件读取器在java中获取这5个参数谢谢这里使用正则表达式匹配器,并在输入字符串上迭代,在进行过程中匹配纯数字:

BB [FL:60 BT:10 SG:20 MK:10 | 12] 
String input=“BB[FL:60 BT:10 SG:20 MK:10 | 12]”;
字符串regex=“\\d+(?=[^0-9.])”;
List vals=new ArrayList();
Pattern p=Pattern.compile(regex);
匹配器m=p.Matcher(输入);
while(m.find()){
add(Integer.parseInt(m.group(0));
}
用于(整数val:val){
System.out.println(“找到一个整数:+val”);
}
找到一个整数:60
找到一个整数:10
找到一个整数:20
找到一个整数:10
找到一个整数:12

拆分、拆分、修剪和拆分:

String input = "BB [FL:60 BT:10 SG:20 MK:10 | 12]";
String regex = "\\d+(?=[^0-9.])";
List<Integer> vals = new ArrayList<>();

Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);

while (m.find()) {
    vals.add(Integer.parseInt(m.group(0)));
}

for (int val : vals) {
    System.out.println("Found an integer: " + val);
}

Found an integer: 60
Found an integer: 10
Found an integer: 20
Found an integer: 10
Found an integer: 12

您应该首先显示您尝试执行此任务的代码。查看以演示如何提问。
-> String code = "BB [FL:60 BT:10 SG:20 MK:10 | 12]"
|  Added variable code of type String with initial value "BB [FL:60 BT:10 SG:20 MK:10 | 12]"

-> String[] mattime = code.split ("[\\]\\[\\|]");
|  Modified variable mattime of type String[] with initial value [Ljava.lang.String;@2286778
|    Update overwrote variable mattime

-> mattime [1]
|  Expression value is: "FL:60 BT:10 SG:20 MK:10 "
|    assigned to temporary variable $32 of type String

-> String[] elem = mattime [1].split (" ")
|  Modified variable elem of type String[] with initial value [Ljava.lang.String;@13a5fe33
|    Update overwrote variable elem

-> for (String e: elem) println (e);
FL:60
BT:10
SG:20
MK:10

-> for (String e: elem) {println (e); String [] kv = e.trim().split (":") ; println (kv[0] + " : " + Integer.parseInt (kv[1])); }
FL:60
FL : 60
BT:10
BT : 10
SG:20
SG : 20
MK:10
MK : 10